Analysis of content dispense events and corresponding transactions

ABSTRACT

An event identifier is received. The event identifier identifies an amount of content dispensed from a container detected using a sensor device that includes a transmitter configured to transmit an interrogation signal and a receiver configured to receive the interrogation signal that has been reflected within the container. A transaction identifier of a transaction associated with quantities of different component ingredient items is received. The amount of content dispensed from the container is automatically correlated with the transaction at least in part by matching the amount of content dispensed from the container with at least one of the component ingredient items associated with the transaction.

CROSS REFERENCE TO OTHER APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/505,053 entitled BASE STATION FOR SENSORS DETECTING CONTENT LEVELfiled May 11, 2017 and claims priority to U.S. Provisional PatentApplication No. 62/505,054 entitled ULTRASONIC BEAM FOCUSER filed May11, 2017 and claims priority to U.S. Provisional Patent Application No.62/505,055 entitled ANALYSIS OF SALE OF CONSUMPTION AND PHYSICALCONSUMPTION filed May 11, 2017, all of which are incorporated herein byreference for all purposes.

BACKGROUND OF THE INVENTION

Certain items such as food and beverages are often sold and stored inproduct containers. In many instances, a consumer periodically performsa visual check to inventory contents remaining in food and beveragecontainers. In another example, bar and restaurant operatorsperiodically inventory the amount of content left in bottles todetermine the amount sold and identify quantity and type of products tobe purchased/replenished. The inventory of content remaining in productcontainers has been traditionally determined manually. This manualprocess is often laborious, imprecise, and error prone. For example, itis often difficult for a person to visually determine an amount ofliquid beverage remaining in a bottle with precision in a reliablemanner. In commercial settings, the amount of time spent by an employeeto manually inventory the remaining content represents a real employmentcost realized by the employer.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 is a diagram illustrating an embodiment of a fill level sensordevice engaged in a container.

FIG. 2A is an example profile cross-sectional diagram illustrating anembodiment of a fill level sensor device.

FIG. 2B is an example side cross-sectional diagram illustrating thesensor device of FIG. 2A.

FIG. 2C is an example diagram of an external profile view of the sensordevice of FIG. 2A.

FIG. 2D is an example diagram of a bottom region close up view of thesensor device of FIG. 2A.

FIG. 3A is a diagram showing components of a pourer fill level sensor.

FIG. 3B is a diagram showing components of a stopper fill level sensor.

FIGS. 3C and 3D are diagrams showing cut-away profile views of apropagation chamber coupled to a sensor device.

FIG. 3E is a diagram showing various different embodiments ofpropagation chamber components.

FIG. 4 is a block diagram illustrating an embodiment of a system for anautomated container content management environment.

FIG. 5 is a flowchart illustrating an embodiment of a process forproviding a configuration for a sensor device.

FIG. 6 is a diagram illustrating an embodiment of a user interface forspecifying a container type to be associated with a sensor device.

FIG. 7 is a flowchart illustrating an embodiment of a process fordetermining one or more sets of configuration parameters of a container.

FIG. 8 is a flowchart illustrating an embodiment of a process forconfiguring a sensor device.

FIG. 9 is a flowchart illustrating an embodiment of a process fordetecting a fill level of a container using a fill level sensor.

FIG. 10 is a flowchart illustrating an embodiment of a process formeasuring a fill level of a container using a fill level sensor device.

FIG. 11 is a flowchart illustrating an embodiment of a process fordetecting potential reflections indicated by a received signal.

FIG. 12 is a flowchart illustrating an embodiment of a process forperforming an action based on a determined content amount.

FIG. 13 is a flowchart illustrating an embodiment of a process forperforming inventory management and reporting.

FIGS. 14A-14C are example user interfaces illustrating dispensed contentreports.

FIG. 15 is a flowchart illustrating an embodiment of a process forassociating content fill level change events with correspondingtransactions.

FIG. 16A is a diagram illustrating an embodiment of a front view of abase station.

FIG. 16B is a diagram illustrating an embodiment of a side view of abase station.

FIG. 16C is a diagram illustrating an embodiment of internal componentsof a base station.

FIG. 17 is a flowchart illustrating an embodiment of a process forconfiguring a base station.

FIG. 18 is a flowchart illustrating an embodiment of a process forprocessing data packets at a base station.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time or a specific component that ismanufactured to perform the task. As used herein, the term ‘processor’refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

A sensor device is disclosed. For example, the sensor device is acontainer cover (e.g., sensor device also functions as a bottle cap)that electronically measures an amount of liquid remaining in acontainer (e.g., beverage bottle) engaged the container cover. In someembodiments, the sensor device includes a content level sensor. Forexample, the sensor transmits an ultrasonic signal and measures theamount of time it takes for the signal to bounce off a liquid contentremaining in the container and return back to the sensor to determinethe liquid level remaining in the container. The sensor device includesa transmitter that transmits an interrogation signal. For example, aspeaker transmits an ultrasonic signal. The sensor device also includesa receiver that receives the interrogation signal that has beenreflected within a container. For example, the received interrogationsignal is processed to determine a fill level of the container.

In some embodiments, the transmitter and receiver are configured to belocated within an interior of the container when the container coverengages the container. Because the transmitter and receiver may beadversely damaged/affected by contents of the container while inside thecontainer, the transmitter and receiver may be required to be protectedfrom the contents of the container. For example, alcohol or acidicbeverages may damage the receiver/transmitter if it comes in directcontact. In some embodiments, a protective material (e.g., barrier film)covers at least the transmitter and/or the receiver. The protectivematerial may protect the transmitter from direct exposure to contents ofthe container. However, the protective material may adversely affect thequality of the transmitted signal required to accurately detect the filllevel of the container. In order to be able to effectively transmit theinterrogation signal through the protective material, the transmitterand the protective material are positioned to create an engineered gapof a preset distance to allow the protective material to effectivelytransmit the interrogation signal. For example, effective vibration ofthe protective material may be achieved at a certain distance betweenthe transmitter and the protective material without directly attachingthe transmitter to the protective material. In some embodiments, theprotective material (e.g., barrier film) covers the receiver and thereceiver receives through the protective material the transmitted signalthat has been reflected by contents of the container.

In some embodiments, the sensor device includes a sensor that detectsthat the device has been triggered. For example, an accelerometer/motionsensor included in the sensor device detects that the device has beenmoved. This movement may correspond to consuming contents from thecontainer that is engaged with the sensor device (e.g., bottle cap withsensor removed from bottle to pour contents out of the bottle, bottletipped over to pour contents out of a spout on the sensor device thatalso functions as a pourer, etc.) and the trigger initiates ameasurement of a fill level of contents in the container. Because it ispower intensive to perform the measurement, using the triggeringcondition to initiate the measurement allows power to be conserved fromnot having to perform measurements when the triggering condition is notmet.

When the transmitter of the sensor device transmits an ultrasonicsignal, the amount of time it takes for the signal to bounce off contentremaining in the container and return back to the sensor is measured todetermine the amount of content remaining in the container. However, notonly does the reflected signal reflect off the content remaining in thecontainer in a direct path, the transmitted signal reflects off walls ofthe container as well as the contents of the container in non-directpaths. Because multiple reflections are received by a receiver of thesensor device, any reflection that does not indicate the current filllevel of the container needs to be minimized. In some embodiments, apropagation chamber is placed over the transmitter and/or the receiversuch that a signal transmitted by the transmitter is propagated via thepropagation chamber and/or a signal received by the receiver is receivedvia the propagation chamber. For example, when the signal is emitted bythe transmitter, the signal spreads out from the transmitter with acertain beam width. The propagation chamber helps narrow the beam widthof the emitted signal by bouncing the signal that hits the walls of thepropagation chamber to be redirected in a desired direction towards thecontents of the container.

Despite efforts to reduce the unwanted reflections within the container,unwanted reflections off walls of the container as well as the contentsof the container in non-direct paths will be detected by the signalreceiver. Because multiple reflections are received by a receiver of thesensor device, the actual direct reflection that indicates the currentfill level of the container needs to be identified among variousdetected reflections. For example, each reflection corresponds todifferent distances traveled by the interrogation signal andconsequently corresponds to different potential container fill levels.The received signal is digitally analyzed and one of the reflections isselected as the selected reflection that corresponds to a selectedcontainer fill level. This selected container fill level is utilized toprovide the current detected container fill level.

In some embodiments, the detected container fill level is correlatedwith transaction data (e.g., sale of an item that utilizes the contentdispensed from the container as its ingredient). This allows automaticinventory management and tracking that are correlated with specificsales. For example, specific product sales data (e.g., cocktail drinkssales data) is received from a point of sales system. The amounts ofcontent dispensed from the containers using the sensor devices that aretracked are correlated with this sales data to attribute specificdispensed container content to a specific transaction/product sale. Thiscorrelation may be performed by matching the amount of content dispensedfrom a container with at least one of the ingredient contents known tobe required for the transaction/product sale.

In some embodiments, the sensor device wirelessly provides measurementdata to a base station device that relays the received measurement datato a network cloud server. However, because a large number of sensordevices may exist in a deployment environment, transmissions to the basestation from different sensor devices may collide with one another.Additionally, it may be too power intensive for the sensor device tocommunicate using an established two-way communication channel thatensures delivery of the measurement data. Thus, rather than using atwo-way communication channel, the sensor device may broadcast themeasurement data in an advertisement packet (e.g., using an advertisingpacket of a BLUETOOTH Low Energy protocol). Because advertising packetsare not guaranteed to be received by the base station, the advertisingpackets that includes the same measurement data is repeatedlybroadcasted by the sensor device based at least in part a likelihood ofthe advertising packet colliding with other advertising packets fromother sensor devices. For example, the number of repeated broadcast ofthe advertising packet is based on a total number of sensor devicesconfigured to communicate with the base station (e.g., total number ofsensor devices in the deployment environment). This allows an increasein the repetition of an advertisement packet with an increase in chancesof collisions due to an increase in the number of sensor devices. Oncean advertisement packet is received by the base station, it may extractpayload content from the advertisement packet and provide at least aportion of the payload content to the server.

FIG. 1 is a diagram illustrating an embodiment of a fill level sensordevice engaged in a container. Container 102 is filled with a liquid. Inthe example shown, fill level sensor device 100 is configured as acontainer cover (e.g., a bottle cap pourer with a spout). The liquidfill level of container 102 may be determined by measuring the distancebetween sensor device 100 and the liquid surface of container 102. Asshown by line 104, a transmitter of sensor device 100 sends out a signal(e.g., ultrasonic signal) that gets reflected by the surface of theliquid. The reflected signal is detected by a receiver of sensor device100.

By measuring the amount of time it took to receive the reflected signal,the distance traveled by the signal before being reflected (e.g.,distance between sensor device 100 and liquid surface is half of thetotal distance traveled by the signal) may be determined by multiplyingthe amount of time by the speed of the signal (e.g., speed of sound).

In some embodiments, to determine the amount of time it took to receivethe reflected signal, the received reflected signal is filtered toisolate the desired signal (e.g., band-pass filter the received signal),amplified, and analyzed to detect peaks that correspond to when thereflected signal was received. A predetermined beginning portion (e.g.,predetermined amount of time in the beginning of the signal) of thereceived signal may be ignored when analyzing the signal to ignoresignals that were detected due to coupling between the transmitter andreceiver of sensor device 100. For example, when the transmittertransmits the signal, the signal may be received by the receiver ofsensor device 100 (e.g., conducted through sensor device 100, due toundesired reflection, etc.) before the signal is reflected by thecontents of the container, and the undesired received signals receivedin the beginning portion of the received signal are ignored whenidentifying the desired received reflected signal.

If the total distance between the bottom of container 102 and sensordevice 100 is known, the fill height of container 102 can be determined(e.g., total distance between bottom and sensor device 100 minusdistance between sensor device 100 and liquid surface). If the shape andvolume of the bottle are known, the volume of liquid contained incontainer 102 may be determined. For example, a table/database/datastructure that maps fill level (e.g., fill height, height between liquidsurface and sensor device 100, etc.) to liquid volume of the containeris utilized to determine liquid volume corresponding to the determinedfill level. Different tables/databases/data structures may exist fordifferent types of containers.

FIG. 2A is an example profile cross-sectional diagram illustrating anembodiment of a fill level sensor device. FIG. 2B is an example sidecross-sectional diagram illustrating the sensor device of FIG. 2A. FIG.2C is a diagram illustrating an example external profile view of thesensor device of FIG. 2A. FIG. 2D is a diagram illustrating an examplebottom region close up view of the sensor device of FIG. 2A. In someembodiments, sensor device 200 is sensor device 100 of FIG. 1. In theexamples shown, sensor device 200 is configured to function as a bottlestopper with a spout. Sensor device 200 includes flexible containercoupling ridges 220 (e.g., elastomer/rubber rings) that allow sensordevice 200 to be coupled to and seal an opening of a container. However,in other embodiments, sensor device 200 may be configured as a differentcover of a container. For example, the components of sensor device 200may be included in a screw-on cap or any other cap that engages acontainer.

Sensor device 200 includes circuit board 212. For example circuit board212 is a printed circuit board. Circuit board 212 may connect togetherone or more of the following included in sensor device 200: a processor,a memory, a data storage, a connector, an integrated chip, atransmitter, a receiver, an accelerometer, a tilt sensor, an orientationsensor, a solar panel, a display, a gyroscope, a wireless datacommunication signal transmitter (e.g., a component able to communicateusing Bluetooth, Wi-Fi, other wireless protocol, etc.), and otherelectrical components. For example, a processor connected to circuitboard 212 provides a command to transmit an acoustic signal using atransmitter and processes a received signal to determine a fill levelindicator. The fill level indicator may be transmitted wirelessly toanother device such as a mobile device, a computer, a display device, orany other computing or display device using a wireless datacommunication transmitter. Circuit board 212 is connected to batteries206. Battery 206 provides power to the circuit of circuit board 212.Battery 206 may be rechargeable and/or replaceable. In the embodimentshown, at least a portion of the batteries are in the neck of sensordevice 200. For example, when sensor device 200 is engaged with acontainer, at least a portion of the batteries are positioned inside thecontainer. By placing the batteries inside the neck of sensor device 200that is configured to be placed inside the container, space within theneck of sensor device 200 that is otherwise required for ridges 220 toengage with the container is efficiently utilized. As shown in theexample, a plurality of batteries may be used and positioned next toeach other lengthwise in the neck of sensor device 200. The housing ofsensor device 200 may be composed of one or more materials. Examples ofthe materials include a food grade polymer, elastomer, plastic, rubber(e.g., synthetic or otherwise), stainless steel, and other metals.

Sensor device 200 includes spout 208. Spout 208 is a part of a passagechannel (e.g., hollow tube) that allows container contents (e.g.,liquid) to pass through to the tip opening of spout 208 from a bottom ofsensor device 200. This passage channel is shown as channel 230 andchannel 232 in the figures. For example, a liquid contained in acontainer that is capped by sensor device 200 is able to pass throughsensor device 200 and exit the opening of spout 208 when the containercapped by sensor device 200 is tipped over. In some embodiments, circuitboard 212 includes an opening hole that accommodates the passage channelthat allows container contents (e.g., liquid) to pass through thecircuit board. In other embodiments, spout 208 may not exist in sensordevice 200. In some embodiments, sensor device 200 includes a vent tubethat allows air to enter a container capped by sensor device 200 ascontent of the container is poured out through spout 208. In someembodiments, sensor device 200 includes a motor (not shown) that pumpsout contents of the container capped by sensor device 200. Air vent 235allows air to enter the container when container contents are poured outof spout 208. Air vent 235 allows air to flow to the bottom of sensordevice 200 (e.g., into container) via the channel of vent tube 237. Thelength of vent tube 237 has been specifically selected to achieve adesired flow rate out of spout 208. In various embodiments, the lengthof vent tube 237 is between 3-12 centimeters. For example, vent tube 237is substantially 7 centimeters in length. Vent tube 237 issealed/blocked at the end of the vent tube. Instead of allowing air toflow via this blocked end, vent tube 237 includes side holes 238 whereair from air vent 235 may pass. By forcing air through side holes 238,the rate of air flow from air vent 235 may be controlled (e.g., rate offlow reduced as compared to having a simple hollow tube with an open endas the vent tube). For example, the contents remaining inside channel230 from pouring contents out of spout 208 may be forced out of spout208 from pressure differential created from turning the containerupright and the controlled air flow may reduce this from happening. Insome embodiments, by sealing/blocking the end of vent tube 237, alikelihood that contents of a container would be forced into vent tube237 when the container is tipped is reduced.

Circuit board 212 is electrically connected to transmitter 204. In someembodiments, transmitter 204 is an acoustic transmitter (e.g.,ultrasonic signal transmitter). For example, transmitter 204 is aspeaker. In some embodiments, transmitter 204 is a piezoelectricspeaker. In some embodiments, transmitter 204 is configured to transmita signal within the ultrasonic frequencies. In some embodiments,transmitter 204 is configured to transmit a signal between 1 kHz and 400kHz, inclusive (e.g., transmit at 300 kHz). In some embodiments,transmitter 204 is configured to transmit a 29 kHz to 40 kHz signal. Insome embodiments, transmitter 204 is an acoustic impulse generator.Receiver 214 is electrically connected to circuit board 212. In someembodiments, receiver 214 is an acoustic receiver (e.g., ultrasonicsignal receiver). In some embodiments, receiver 214 is a microphone. Insome embodiments, receiver 214 is a Micro Electro Mechanical Systems(MEMS) microphone. For example, receiver 214 is 2 millimeter×3millimeter in size. Receiver 214 and transmitter 204 are connected tocircuit board 212 via connector 210. As shown in FIG. 2C, connector 210is routed from bottom of device 200 via the neck of device 200 tocircuit board 212. Examples of connector 210 include a wire, a bus, aflexible printed circuit board, and any other connector able to transmita signal. For example, connector 210 connects to the rear of receiver214 and transmitter 204 via one or more connectors mounted on receiver214 and transmitter 204.

In some embodiments, because debris, liquid, and other materials mayaffect the performance and durability of transmitter 204 and receiver214 (e.g., when using spout 208 to pour out contents of the container),transmitter 204 and receiver 214 are placed in protected compartments.In some embodiments, a protective layer material covers transmitter 204and receiver 214. Ideally the protective material must not allowundesired material through while at the same time allowing signals(e.g., acoustic signals) to pass through. Protective material 216 coverstransmitter 204 and is attached to edges surrounding the assemblyforming the compartment that houses transmitter 204. Protective material216 covers receiver 214 and is attached to edges surrounding theassembly forming the compartment that houses receiver 214. In someembodiments, protective material 216 and protective material 218 are thesame continuous material. For example, a single connected sheet includesboth protective material 216 and protective material 218. In someembodiments, protective material 216 and protective material 218 are notcontinuous materials. For example, in order to maximize decoupling ofthe transmitted signal of transmitter 204 and the received signal ofreceiver 214, protective material 216 and protective material 218 arenot made of the same continuous material. In some embodiments,protective material 216 and protective material 218 are differentmaterials. Examples of protective material 216 and protective material218 include one or more of the following: Mylar sheet, waterproof mesh,acoustic sheet, Teflon, Gortek, polytetrafluoroethylene (PTFE),polyethylene terephthalate (PET), polyethylene terephthalateglycol-modified (PETG), polycarbonate, and any other appropriate mesh ormembrane that may be porous or non-porous. For example, a Mylar sheetcovering does not allow liquid to pass through while acting like a drumto allow acoustic signals to pass through. In some embodiments,protective material 216 and/or protective material 218 are acousticallytransmissive liquid blocking materials. In some embodiments, protectivematerial 216 and/or protective material 218 is optional. In someembodiments, protective material 216 and 218 are attached to device 200via a food-safe adhesive.

A gap distance has been engineered to be between transmitter 204 andprotective material 216. For example, transmitter 204 is mounted in amanner that ensures a predetermined gap between transmitter 204 andprotective material 216. In various embodiments the gap betweentransmitter 204 and protective material 216 is approximately 0.2millimeters. For example, in order to be able to effectively transmitthe interrogation signal through the protective material, thetransmitter and the protective material are positioned to create anengineered gap of a preset distance to allow protective material toeffectively transmit the interrogation signal. Effective vibration ofthe protective material may be achieved at a certain distance (e.g.,resonance distance) between the transmitter and the protective materialwithout directly attaching the transmitter to the protective material.In some embodiments, the gap is an air gap between transmitter 204 andprotective material 216. In various embodiments the gap may includeother gases, liquids and/or solids placed between transmitter 204 andprotective material 216 to achieve desired signal transmissionproperties via the gap and the protective material.

In some embodiments, receiver 214 is in direct contact with protectivematerial 218. For example, receiver 214 is mounted in a manner thatensures that receiver 214 contacts protective material 218. For example,in order to be able to effectively receive the reflected interrogationsignal through the protective material, the receiver is in contact withthe protective material. In some embodiments, receiver 214 is attachedto protective material 218 via adhesive (e.g., pressure sensitiveadhesive). For example, a surface of receiver 214 is coated with theadhesive and allowed to be attached to protective material 218.

Transmitter 204 and receiver 214 are sealed and attached to assembly 242of device 200 using a potting material. For example, a cavity behindtransmitter 204 and receiver 214 within an assembly of device 200 isfilled with the potting material to secure the transmitter and thereceiver from movement as well as minimize/isolate direct signaltransmission (e.g., minimize signal directly reaching from transmitterto receiver via the housing of device 200). As shown in the figures,potting material 240 fills the cavity behind transmitter 204 andreceiver 214. For example, the potting material has been injected intothe cavity via an opening in the assembly of device 200. Pottingmaterial 240 may be a solid or gelatinous compound. For example,plastics, silicone, elastomer, epoxy, and/or rubber (e.g., synthetic orotherwise) may be utilized as potting material 240.

In some embodiments, in order to dampen the signal/vibration/noisereaching receiver 214 (e.g., conducted at least through assembly 242from transmitter 204), at least a portion of receiver 214 is placed incontact with (e.g., coupled to) a dampening material. For example, atleast a portion of one or more sides and/or front of receiver 214contacts the dampening material (e.g., placed between assembly 242 andreceiver 214). Examples of the dampening material include foam,elastomer, rubber (e.g., synthetic or otherwise), silicone, and/orpolymer. In some embodiments, the dampening material is included in atleast a portion of region 244 between assembly 242 and receiver 214(e.g., receiver 214 is seated in the dampening material that is placedwithin assembly 242 and the dampening material contacts both receiver214 and assembly 242).

Device 200 includes drip collectors 234 and 236. Because the bottom ofdevice 200 is exposed to the content of the container when device 200 isengaged with the container, liquid or other content of the container maybead on and attach to device 200 (e.g., when the sensor is tipped overto pour out contents via the spout or when the contents splash in thecontainer during movement and transport). Beading of contents on device200 may interfere with signal transmission and detection required todetect fill levels of the container. For example, when liquid beads formon protective material 216 and/or protective material 218, it mayinterfere with signal transmission of transmitter 204 and/or signalreceipt of receiver 214. In order to reduce the chances of contentremaining on the surfaces of protective material 216 and/or protectivematerial 218, drip collectors 234 and 236 have to be shaped to pull awaycontent remaining on the bottom of device 200. For example, when device200 is placed upright, the slope of the drip collectors aids thegravitational pull of any beaded content away from the drip collectorsto back down into the container. When beaded content on the dripcollector is pulled down along the slope of the drip collectors bygravitational forces, beaded content remaining on protective materials216 and 218 may also be pulled along the slope of the drip collectorsback down into the container. In some embodiments, drip collectors 234and 236 aids in the breaking of the surface tension of content depositedon protective materials 216 and/or 218 by wicking away the content withthe aid of the slope of the drip collectors 234 and 236 that leveragesthe gravitational pull down the slope the drip collectors.

As shown in the figures, drip collector 234 is adjacent to protectivematerials 216 and 218 and forms a slope connecting a horizontal surfaceof protective materials 216 and 218 to a perpendicular vertical surface.Drip collector 234 is adjacent to the opening of channel 232 and aids inthe removal of content beading/forming on the lip of channel 232 andprotective materials 216 and 218. The tip (e.g., narrowing surface)formed by the shape of drip collectors 234 and 236 allows concentrationof content as the content flows down the drip collectors to allowconcentration of content that aids to increase gravitational pull andreduce surface tension. In some embodiments, channel 232 does not exist(e.g., bottle stopper sensor device) and drip collector 236 is shaped toform a slope from the plane of protective materials 216 and 218 to thevertical tip of drip collector 236. The surface of drip collectors 234and 236 have been formed and/or coated to be substantially smooth (e.g.,to further reduce friction/tension).

In an alternative embodiment, rather than utilizing a separatetransmitter and a separate receiver, a transceiver that acts as both areceiver and transmitter is utilized. For example, receiver 214 is notutilized and transmitter 204 is a transceiver (e.g., piezoelectrictransceiver).

FIG. 3A is a diagram showing example components of a pourer fill levelsensor. FIG. 3A shows components of fill level sensor device 300. Filllevel sensor device 300 is an example of a fill level sensor device 200with a pouring spout shown in FIGS. 2A-2D.

Pour spout 208 is made of metal and coated with metal (e.g., chrome).This may aid in the durability and pour flow rate. Sealing spacer 302seals the content pour channel as the air vent channel betweencomponents and also functions as a spacer for assisting the alignment ofcircuit board 212 during assembly. Circuit board 212 includes one ormore holes to accommodate the pour channel and the air vent channel.Vent tube 237 includes metal components and extends from a vent hole onpour spout 208 through sealing spacer 302 and circuit board 212 andthrough drip collector 310 that includes drip collector 234.

Housing 304 includes plastic and elastomer components. Elastomer rings220 fit over the neck portion of housing 304. Battery holder 306includes batteries 206 and is inserted inside the neck of housing 304.Battery holder 306 allows connector 210 to be routed from one end of thebattery holder 306 near the transmitter and receiver to the other end ofbattery holder 306 to allow connector 210 to connect the transmitter andreceiver to circuit board 212. Sensor holder assembly 242 includes aframe to position a transmitter and a receiver in assembly 242. Holderassembly 242 includes a raised edged surface where a protective material(e.g., materials 216 and 218) is attached to cover the transmitter andreceiver. Holder assembly 242 is configured to be coupled to an end ofbattery holder 306 such that backsides of the transmitter and receiverface battery holder 306. After battery holder 306 and holder assembly242 are coupled together, a potting material may be injected into acavity between them to attach battery holder 306 and holder assembly 242together as well as seal the transmitter and receiver within the holderassembly 242 (e.g., backsides of the transmitter and receiver areexposed and attached to the potting material).

In some embodiments, a sealing material seals edges of protectivematerial attached to holder assembly 242 and the external exposedsurface of the potting material (e.g., potting material exposed from ahole used to inject the potting material between battery holder 306 andholder assembly 242) to protect them from being damaged by contents(e.g., alcohol, acidic beverage, etc.) of a container.

FIG. 3B is a diagram showing example components of a stopper fill levelsensor. FIG. 3B shows components of fill level sensor device 350. Filllevel sensor device 350 is an example of fill level sensor device 200without a pouring spout and utilizes many of the same components of filllevel sensor 200 shown in FIGS. 2A-2D.

Top cap 352 is made of metal. Spacer 354 assists in the alignment ofcircuit board 212 during assembly. Housing 304 includes plastic andelastomer components. Elastomer rings 220 fit over the neck portion ofhousing 304. Battery holder 306 includes batteries 206 and is insertedinside the neck of housing 304. Battery holder 306 allows connector 210to be routed from one end of the battery holder 306 near the transmitterand receiver to the other end of battery holder 306 to allow connector210 to connect the transmitter and receiver to circuit board 212. Sensorholder assembly 242 includes a frame to position a transmitter and areceiver in assembly 242. Holder assembly 242 includes a raised edgedsurface where a protective material layer (e.g., materials 216 and 218)is attached to cover the transmitter and receiver. Holder assembly 242is configured to be coupled to an end of battery holder 306 such thatbacksides of the transmitter and receiver face battery holder 306. Afterbattery holder 306 and holder assembly 242 are coupled together, apotting material may be injected into a cavity between them to attachbattery holder 306 and holder assembly 242 together as well as seal thetransmitter and receiver within the holder assembly 242 (e.g., backsidesof the transmitter and receiver are exposed and attached to the pottingmaterial). In some embodiments, a sealing material seals edges ofprotective material attached to holder assembly 242 and the externalexposed surface of the potting material (e.g., potting material exposedfrom a hole used to inject the potting material between battery holder306 and holder assembly 242) to protect them from being damaged bycontents (e.g., alcohol, acidic beverage, etc.) of a container.

FIGS. 3C and 3D are diagrams showing cut-away profile views of apropagation chamber coupled to a sensor device. Sensor device 360 is aschematic example of fill level sensor device 200 shown in FIGS. 2A-2Dwith a propagation chamber. In some embodiments, sensor device 360 is anexample of sensor device 300 of FIG. 3A with a propagation chamber. Insome embodiments, sensor device 360 is an example of sensor device 350of FIG. 3B with a propagation chamber. Sensor device 360 includes and/oris coupled to propagation chamber component 362. Propagation chambercomponent 362 forms a surrounding wall of a propagation chamber thatextends from an end of sensor device 360 where a signal is to be emittedand/or received. FIG. 3E is a diagram showing various differentembodiments of propagation chamber components. In some embodiments, theshown propagation chamber components 380 are examples of propagationchamber components 362 of FIGS. 3C and 3D. The propagation chambercomponents 380 are shown in FIG. 3E in a view looking up into thepropagation chamber from its bottom opening (e.g., where a transmittertransmitted signal exits the propagation chamber and a reflected signalenters the propagation chamber) to the top opening (e.g., where atransmitter transmitted signal enters the propagation chamber and areflected signal exits the propagation chamber). The various propagationchamber components 380 are various different examples of propagationchamber components that can be coupled to fill level sensor device 200shown in FIGS. 2A-2D, sensor device 300 of FIG. 3A, and/or sensor device350 of FIG. 3B to form a sensor with a propagation chamber (e.g., shownin FIGS. 3C and 3D).

Sensor device 360 includes transmitter 204 and receiver 214 that arecovered by protective material 216 and protective material 218. In analternative embodiment, protective material 216 and/or protectivematerial 218 are not utilized. When transmitter 204 transmits aninterrogation signal, the signal passes through protective material 216and into propagation chamber 364. The bounced back interrogation signalis also received by receiver 214 when the signal enters propagationchamber 364 to reach receiver 214 through protective material 218.

Although the embodiment shown in FIG. 3D shows both the transmitter andreceiver transmitting/receiving via the same propagation chamber, inother embodiments, the transmitter and receiver may utilize differentpropagation chambers or either may not utilize a propagation chamber. Inan alternative embodiment, rather than utilizing a separate transmitterand a separate receiver, a transceiver that acts as both a receiver andtransmitter is utilized. Propagation chamber component 362 coupled tothe end of sensor device 360 replaces and functions as a drip collector.For example, drip collectors 234 and 236 shown in other figures are atleast in part replaced by propagation chamber component 362 that forms atube where signal being transmitted/received passed through. The sensordevice 360 shown in FIGS. 3C and 3D has been simplified to highlightaspects of the embodiment. Other components not shown in the example mayexist. For example, any component of sensor device 200, 300 and/or 350may be included in sensor device 360.

Propagation chamber component 362 forms the walls of propagation chamber364 that extends away from transmitter 204 and receiver 214. Forexample, propagation chamber component 362 forms a hollow chamber (e.g.,tube) that guides and propagates an acoustic signal emitted bytransmitter 204 from a top end of the propagation chamber to the otherbottom end of the propagation chamber. Signal emitted by transmitter 204enters propagation chamber 364 at the top end of the hollow chamber andexits out its output bottom end of the hollow chamber (e.g., distalend). In some embodiments, propagation chamber component 362 aids indirecting an acoustic signal (e.g., ultrasonic signal, acoustic impulse)emitted by transmitter 204 towards the direction of the distance to bemeasured (e.g., towards bottom of sensor 360 that will be facingcontents of a container capped by sensor 360).

In some embodiments, it is desirable to reduce and/or attempt toeliminate any signal reflections within propagation chamber 364 as thesignal is guided from one end to the other end of propagation chamber364. For example, any undesired reflection may mask and hinder detectionof the signal reflected by container contents desired to be detected. Insome embodiments, the interior wall of the hollow propagation chamber ofpropagation chamber component 362 is substantially smooth (e.g., toprevent impedance mismatches). In some embodiments, a shape and/or sizeof a horizontal cross section area of hollow propagation chamber 364formed by propagation chamber component 362 increases over its verticaldistance between the signal input end closest to transmitter 204 to theother signal output end (e.g., distal end). In some embodiments, a shapeof the opening of one end of the hollow chamber is different from ashape of the opening of the other end of the hollow chamber. Forexample, a shape of an opening of the transmitter may be different thana desired shape of the signal output end of propagation chambercomponent 362 (e.g., desired shape to improve directionality of thesignal in the container). In one example, the signal input end of thechamber of propagation chamber component 362 is shaped in a first shape(e.g., elliptical shape) and the output opening end of the other end ofthe chamber of propagation chamber component 362 is shaped in a secondshape (e.g., circular shape). The change in horizontal cross-sectionalshape of the hollow signal propagation chamber may at least in partgradually morph from the first shape to the second shape across thevertical length of propagation chamber component 362.

In some embodiments, the horizontal cross-sectional area of the hollowchamber of propagation chamber component 362 varies along it verticallength (e.g., is only greater or equal to a previous horizontalcross-sectional area of the hollow chamber from the input opening to theoutput opening of propagation chamber component 362). For example, thecircular cross-sectional area of the chamber of propagation chambercomponent 362 never decreases as the acoustic signal outputted by thetransmitter is traveling down the chamber of propagation chambercomponent 362. In some embodiments, the horizontal cross-sectional areaof the chamber of propagation chamber component 362 is generallyincreasing as the signal emitted by transmitter 204 travels downpropagation chamber component 362 towards the distal end of propagationchamber component 362.

In some embodiments, the horizontal cross-sectional area of the hollowpropagation chamber of propagation chamber component 362 has one or moretransitions where a rate of change in the horizontal cross-sectionalarea of the hollow chamber transitions from one rate to another rate(e.g., transitions where a slope of the interior wall of the hollowpropagation chamber changes from one slope to another slope). Forexample, the horizontal cross-sectional area of the chamber ofpropagation chamber component 362 increases at a constant first ratealong a first portion down the chamber then the horizontalcross-sectional area of the chamber increases a different constantsecond rate along a second portion down the chamber and then increases adifferent constant third rate along a third portion down the chamber.This results in the slope of the interior wall of the chamber changingfrom a first slope to a second slope to a third slope. In the exampleshown in FIG. 3D, two transitions 366 and 368 are shown where the slopesof interior chamber wall portions 370, 372 and 374 change. The rate ofchange of the corresponding horizontal cross-sectional area of chamber364 would also change down the chamber at transitions 366 and 368 (e.g.,rate of change in horizontal cross-sectional area becomes smaller tocorrespond with increase in interior wall slope).

In some embodiments, the slope of the interior walls of chamber 364 ofcomponent 362 redirects a signal emitted by transmitter 204 down towardscontents of a container to be measured by reflecting the signal towardsthe desired direction. For example, when the transmitted interrogationsignal has a large beamwidth and the sensor device is engaged with acontainer with a narrow neck and dramatic variations in shape, thereflection coming back from the contents in the container will includeother aliases as a result of multiple path reflections and impedancechanges. By reducing the effective beamwidth of the signal using chamber364, undesired signal reflections may be mitigated. In some embodiments,a smallest beam width is highly desirable. For example, in order tomeasure distances such as 10 cms to 100 cms in air using sound lowerfrequencies within the range of ultrasonic frequencies may be preferred(e.g., 40 kHz). Small container openings often limit the diameter to beno greater than 30 mm in diameter. Larger surface may be able togenerate higher frequencies but they typically don't fit the desiredapplication. For example, a smaller surface is needed to generate higherfrequencies (e.g., N=2 fr). The interrogation signal generator voltageis proportional to the frequency. Additionally with the receiver, asmaller surface as compared to a larger one is not as sensitive indetecting reflected signals. Hence these conflicting requirements andpossible solutions severely constrain building a sensor or source ofsignal that can have a narrow beamwidth.

The sloping angles of the interior walls of chamber 364 help focus thesignal beam such that energy is collimated to travel in a desireddirection down towards contents of the container. In some embodiments,the interior walls of chamber 364 formed by component 362 includeinternal sidewalls with varying slopes (e.g., flat facets with differentslope angles that vary, one or more curved facets with different slopeangles, etc.) and when the transmitted signal contacts the internalsidewalls, the signal bounces off at angles that direct the signaltoward the desired signal direction. The shown chamber component 362surrounds a portion of the transmitter (e.g., acting as a waveguide) andforms sloping walls of at least a portion of an open cavity where theultrasonic signal originates. In some embodiments, an end of thepropagation chamber component 362 surrounds at least a transmittingsurface interface of an ultrasonic transmitter (e.g., protectivematerial/film in front of the transmitter). The different slopes/facetsof the interior walls of chamber 364 allow different signal portionsthat radiate from the transmitter at different angles to be redirectedtowards the same desired direction.

In some embodiments, a height of chamber 364 of propagation chambercomponent 362 (e.g., distance between the input and output openings) isapproximately 8 millimeters. In some embodiments, a height of chamber364 of propagation chamber component 362 (e.g., distance between theinput and output openings) is approximately less than or equal to 20millimeters (e.g., between 10-20 millimeters). In some embodiments, awidth of chamber 364 of propagation chamber component 362 is less thanan opening size of a container (e.g., less than 30 millimeters). Invarious embodiments, the shape, length, and width of propagation chambercomponent 362 and chamber 364 may be any combination of shape, lengthand width configurations and sizes.

In some embodiments, propagation chamber component 362 functions as adrip collector. Because the bottom of device 360 is exposed to thecontent of the container when device 360 is engaged with the container,liquid or other content of the container may bead on and attach todevice 360 (e.g., when the sensor is tipped over to pour out contentsvia the spout, due to condensation, or when the contents splash in thecontainer during movement and transport). Beading of contents on device360 (e.g., on the transmitter, receiver, or protective film overtransmitter receiver) may interfere with signal transmission anddetection required to detect fill levels of the container. For example,when liquid beads form on protective material 216 and/or protectivematerial 218, it may interfere with signal transmission of transmitter204 and/or signal receipt of receiver 214. In order to reduce thechances of content remaining on the surfaces of protective material 216and/or protective material 218, the interior walls of chamber 364 ofpropagation chamber component 362 have to be shaped to pull away contentremaining on protective material 216 and/or protective material 218. Forexample, when device 360 is placed upright, the slope of the interiorside walls of chamber 364 aids the gravitational pull of any beadedcontent on protective materials of the transmitter/receiver and/or wallsof chamber 364 back down into the container. When beaded content on theinterior chamber wall is pulled down along the slope of the interiorwalls of chamber 364 by gravitational forces, beaded content remainingon protective materials 216 and 218 may also be pulled along the slopeof the drip collectors back down into the container. In someembodiments, the chamber walls functioning as drip collectors aid in thebreaking of the surface tension of content deposited on protectivematerials 216 and/or 218 by wicking away the content with the aid of theslope of the interior walls of chamber 364 that leverages thegravitational pull down the slope of the drip collectors. In someembodiments, the surfaces of the interior walls of chamber 364 formed bycomponent 362 have been formed and/or coated to be substantially smooth(e.g., to further reduce friction/tension as moisture is wicked away).

Examples of the composition material of propagation chamber component362 include a food grade polymer, polycarbonate, polyethyleneterephthalate (PETE), polytetrafluoroethylene (PTFE), plastic, rubber,stainless steel, and other metals. In some embodiments, the interiorhollow chamber of propagation chamber component 362 is coated with adampening material. For example, an acoustic signal dampening material(e.g., rubber like material) coats plastic walls of the hollow chamberand the coating may assist in reducing the amount of signal that bouncesoff the walls of the chamber.

FIG. 4 is a block diagram illustrating an embodiment of a system for anautomated container content management environment.

Sensor devices 402 and 404 each include a sensor for automaticallydetermining the amount of content remaining in a container covered bythe sensor device. In some embodiments, sensor devices 402 and 404 eachinclude sensor device 100, 200, 300, 350 and/or 360 of FIGS. 1-3D.Although only two sensor devices have been shown in FIG. 4, any numberof sensor devices may exist in various embodiments. Examples of sensordevices 402 and 404 include a bottle cap, a bottle cap with a spout, acontainer lid, and any other container cover configured to cover atleast a portion of an opening of a container.

In some embodiments, the sensor devices utilize one or more of thefollowing to detect remaining content amount/level of content in acontainer and/or a volume of flow outputted from the container:ultrasound, sonar, inductive, capacitive, IR, line, video sensors, etc.

In various embodiments, sensor device 402 and/or sensor device 404includes one or more of the following features:

a threading or another portion utilized as an inductive sensor.

a detection of content expiration by sensing the chemical compositionand nutrient value using humidity, barometry, light, pH, and/or odorsensors.

an input mechanism to receive an identification of a classification of afood type (e.g., tequila, rum, 5% ale, etc.).

a temperature sensor and notification mechanism to notify a user if thetemperature is not optimal.

a click wheel input mechanism based on mechanical and/or electricalcomponents (e.g., capacitive sensor).

a display configured to display quantity, expiration date, type ofproduct, nutrient information, temperature, last used information, etc.

a wireless radio to identify and connect to a wireless network (e.g.,Bluetooth, WiFi, etc.).

an ability to detect motion using an accelerometer to allow automaticpower on/off on an as needed basis to optimize power consumption (e.g.,an optimal power management algorithm to store, manage, and transmit theinformation to minimize power usage).

a touch sensitive screen that provides an interface for placing anorder.

impellers, flow restrictive mechanisms, or any conduit utilized inpouring content out of a container

a mechanical fixture that allows quantity measurement while enclosed ina casing that insulates and protects the electrical system from allforms of liquids (e.g., hermetically sealed).

a module that is corrosion resistant and can operate in temperaturesfrom −40 F to 115 F.

an ability to store and transmit only when the network connectivity isavailable.

an ability to associate information with unique bar identity.

a touch sensitive screen based on but not limited to a resistor orcapacitive sensor.

a mechanism which allows for one touch reordering (e.g., a screenassociated with the sensor device or an independent of the sensor deviceas an independent screen or button).

a sensor module, pourer, and spout could be combined into a single unitor the pourer and spout could be independent of the sensors andprocessor module.

impellers, flow restrictive mechanisms, and any additional conduits thatattach to the sensor device can also be attached with a sensor.

a hollow wedge configured to be resizable to fit a neck size of acontainer bottle.

an electronic or physical label to allow differentiation of differentsensor devices (e.g., based on the type of beverage, content, brand,etc.).

a mechanical motor or other mechanism that can be utilized to clean atip of a spout (e.g., cleaned using suction or air pressure).

a mechanical or MEMS motor which could be attached to the sensor deviceso as to create a suctioning of air from within the bottle.

once air is evacuated from a container, an ability to seal and blockoxygen from entering the bottle.

a replaceable and/or rechargeable battery (e.g., battery may berecharged using inductive charging (e.g., Qi) and/or resonance wirelesscharging).

Interface device 406 receives data from one or more sensor devices. Forexample, sensor device 404 broadcasts an identifier of an amount ofcontent remaining in a container covered by sensor device 404 andinterface device 406 receives the identifier for storage and processing.In some embodiments, sensor devices 402 and 404 each need to beconfigured for a specific type of container to allow each sensor deviceto be able to more accurately measure the amount of content remaining ina container engaged by the sensor device. For example, the waveform ofthe ultrasonic signal emitted by a sensor of the container cover is tobe specifically configured for the shape/size of the container. In someembodiments, interface device 406 pairs with a sensor device (e.g., viaa wireless Bluetooth connection) to transmit configuration data specificto the type of container associated with the sensor device. In someembodiments, a user utilizes interface device 406 to specify the type ofcontainer to be associated with a specific sensor device. In someembodiments, a user utilizes interface device 406 to view, manage,and/or configure one or more associated sensor devices. For example, auser utilizes an application of interface device 406 to configure sensordevices, view an inventory of remaining content measured by sensordevices, and automate ordering of low inventory content. Examples ofinterface device 406 include a mobile device, a smartphone, a smartwatch, a wearable computer, a laptop computer, a desktop computer, andany other type of computer. In some embodiments, the interface device isalso a charging station for one or more sensor devices. In someembodiments, a charging station includes a mechanism to sanitize asensor device (e.g., via a suction cleaning, heating, blow drying, etc.mechanism).

In some embodiments, interface device 406 (e.g., base station) acts as acentral communication hub for all sensor devices of a user within acertain proximity. In some embodiments, interface device 406 isassociated with a specific user. Multiple interface devices may beutilized to manage the same set of sensor devices. For example, multipleinterface devices may communicate with one another and/or with a backendserver to synchronize data. In some embodiments, interface device 406includes BLUETOOTH, BLUETOOTH Low Energy, and/or wireless (402.x)protocol-based wireless chipsets. In some embodiments, interface device406 includes a display to display sensor device status, beveragequantity, recipes, order reminders, etc. In some embodiments, interfacedevice 406 communicates with a Point of Sales (POS) system to correlatesales data with measured content utilization/consumption/depletion. Invarious embodiments, interface device 406 (e.g., base station) includesone or more of the following:

a display to inform a user about sensor device status, beveragequantity, recipes, reminders, etc.

a touch sensor or flashing LED-based communicator to pair the sensordevices.

a data storage to store data from thousands of sensor devices for atleast a few days to a month.

an ability to communicate with a Point of Sales system.

an ability to communicate with the cap sensor devices to collect thebeverage volumes on demand.

an ability to communicate with the cap sensor devices to re-pair itselfto a new container and provide new configuration parameters.

an ability to communicate with the sensor devices to evacuate oxygen outof the bottles.

Interface device 406 is connected to server 410 (e.g., backend server)by network 408. In some embodiments, server 410 remotely stores and/orprocesses measurement data received from sensor devices. For example,measurement data periodically broadcasted by sensor devices 402 and 404is received by interface device 406 and interface device 406 providesthe received data to server 410 for storage and/or backend serverprocessing. In some embodiments, interface device 406 and/or server 410utilizes measurement data of a sensor device to calculate an amount ofcontent remaining in a container engaged by the sensor device. Forexample, a round trip signal reflection time measured by a sensor deviceis utilized to calculate a percentage fill amount of content remainingin a container. In some embodiments, server 410 processes current and/orhistorical content measurements to provide analytics (e.g., consumptionpatterns, determine inventory, analyze cost of goods sold, identifypopularity trends, etc.) and inventory management solutions (e.g.,inventory forecasting, inventory planning, automated inventory ordering,etc.). In various embodiments, server 410 provides one or more of thefollowing functionalities:

a storage of beverage related data that offers a view into beverageconsumption patterns by service owners: beverage name, types of liquid,brand, UPC or a bar code, quantity, price, distributor, date and time ofpurchase, servings per use, time of servings consumed, location,expiration, chemical composition, odor, color, temperature, humidity,ingredients used, and various nutrient amounts (e.g., Sulfites, ethyl,carbohydrates, proteins, fats, sugars, etc.).

a mechanism to uniquely associate various devices that help collectbeverage data with each user and their inventory.

an ability to listen, collect, and store millions of devices at anygiven point in time.

an ability to notify the user to reorder the necessary beverages orautomatically reorder and replenish from distributors.

an algorithm that analyzes, learns, and predicts amount of beverage/foodneeded by a user and consumable state of the item (e.g., expirationdates).

an ability to set beverage threshold levels that trigger a notificationto reorder.

an ability to provide a notification when the beverage temperature isnot ideal and the beverage needs more appropriate storage.

an ability to provide a notification when the oxygen level in thebottles is beyond a threshold of permitted aeration levels.

an ability to set thresholds for inventory based on category, brands,type of beverage, and recipes.

an ability to provide real time notifications when the inventory levelsfall below threshold levels.

User device 412 is utilized by a user to setup, configure, view and/orotherwise interact with one or more of the components shown in FIG. 4.For example, a user utilizes user device 412 to setup and/or configureone or more of sensor devices 402. In another example, a user utilizesuser device 412 to configure, view and/or interact with data andconfiguration managed, tracked and/or analyzed by server 410. Examplesof interface device 406 include a mobile device, a smartphone, a smartwatch, a wearable computer, a laptop computer, a desktop computer, andany other type of computer. User device 412 is optional. For example,interface device 406 may include a touchscreen that can be used toperform one or more functions of user device 412. User device 412 isconnected network 408 and may communicate with any of the othercomponents shown in FIG. 4 via network 408. User device 412 may alsodirectly communicate directly with one or more of the other componentsshown in FIG. 4. For example, user device 412 may communicate directlywith interface device 406 and/or one or more of sensor devices 402 via aBLUETOOTH connection.

In some embodiments, the system shown in FIG. 4 is utilized in abar/restaurant environment to automatically track and manage inventoryof liquor remaining in liquor bottles. Each liquor bottle is cappedusing a sensor device that is configured to be a cap for the liquorbottle. In some embodiments, the sensor devices detect the quantity ofliquid/beverage remaining in each bottle and broadcast the detectedquantity to interface device 406. The interface device reports thereceived quantity information to server 410. In some embodiments, server410 provides an online interface to manage container content (e.g.,beverage) inventory. For example, a bar/restaurant user entity mayaccess server 410 via an application of interface device 406, userdevice 412, and/or a webpage interface provided by server 410 to viewand manage inventory of one or more tracked beverage products. Inventoryinformation (e.g., including inventory remaining in open containersmeasured by sensor devices and full bottle inventory on hand in storage)may be updated automatically and viewed and exported in real time. Theinventory of products may be classified by brands, drink type (tequila,whiskey, etc.), recipe (e.g., amount of each mixed drink able to be madeusing remaining inventory), and/or popularity. In various embodiments,the system provides one or more following functions:

a mechanism to export or import the entire inventory of beveragesclassified by brands, drink type (e.g., tequila, whiskey etc.), recipe,and popularity.

a manual or automated process/technique of marking sensor devices(physically or through software identifiers) for tracking which sensordevice corresponds to each of the beverages listed in the trackedinventory.

an ability to register and identify the base station for a particularuser account.

In some embodiments, for a specific user account associated with one ormore sensor devices, server 410 learns the consumption pattern,nutrients, and preferences in various types of beverages, flavors,taste, and brands. In some embodiments, using interface device 406and/or user device 412, a user is able to access information aboutconsumption quantity, humidity, oxygen content, inventory, drinkrecipes, and seasonal recommendations associated with current inventorydetected using one or more sensor devices. In some embodiments, usinginterface device 406 and/or user device 412, a user may access amarketplace to order beverages from various distributors and deliveryservices. In some embodiments, a user is notified via interface device406 and/or user device 412 of a need to replenish an inventory ofbeverages and may also directly notify one or more distributors to placeone or more appropriate orders. In some embodiments, interface device406 and/or user device 412 provides recommendations for various drinkrecipes based on existing inventory detected using one or more sensordevices. In some embodiments, consumption data obtained across aplurality of different user entities may allow trend analysis andmanufacturing forecasting across user entities.

In some embodiments, the sensor device includes a mechanism to controland limit an amount of beverage poured via a spout of the sensor device.In some embodiments, the sensor device includes a mechanism to evacuateoxygen out of a container and reseal the container. For example, inorder to preserve the freshness of wine, the sensor includes anelectronic air pump that pumps air out of a container. In someembodiments, the sensor device includes or has more sensors to detecttemperature, humidity, acidity and/or nutrient value of content includedin a container. The detected sensor information may be transmitted to aninterface device and/or a server (e.g., interface device 406 and/orserver 410). In some embodiments, a user is provided a notification whena detected content temperature and/or oxygen level is outside arecommended range.

One or more of the following may be included in network 408: a direct orindirect physical communication connection, mobile communicationnetwork, Internet, intranet, Local Area Network, Wide Area Network,Storage Area Network, a wireless network, a cellular network, and anyother form of connecting two or more systems, components, or storagedevices together. Additional instances of any of the components shown inFIG. 4 may exist. For example, server 410 may be a distributed serverand/or may be connected to a plurality of interface devices. In anotherexample, a plurality of interface devices may be utilized to manageand/or utilize the same or different container covers. In someembodiments, components not shown in FIG. 4 may also exist.

FIG. 5 is a flowchart illustrating an embodiment of a process forproviding a configuration for a sensor device. The process of FIG. 5 maybe at least in part implemented on interface device 406 and/or userdevice 412 of FIG. 4. In some embodiments, the sensor device measures anamount of content included in a container (e.g., sensor device is abottle cap that measures amount of liquid remaining in a bottle cappedby the sensor device) and the sensor device must be configured for aspecific container type of the container for the sensor device to beable to more accurately measure the amount of content in the container.For example, various types of containers are shaped differently and thebest waveform of the signal utilized to measure the amount of contentincluded in a container may depend on the shape of the container. Insome embodiments, in order to achieve consistent and accuratemeasurements, gain at various depths is varied to help increase thereceived signal strength. Gain can be varied by changing the frequencyand the number of pulses. For example, higher frequency and lower numberof pulses may lead to better resolution at the top of thebottle/container while lower frequency and higher number of pulses maylead to better resolution towards the bottom of the bottle/container(e.g., the act of changing the pulses and frequency is akin to organpipe tuning). Bottles and containers may have dead zones where nomeasurements can be obtained due to standing waves. By continuing topulse or use large number of pulses at the same frequency, the deadzones may be overcome. In some embodiments, a depth measurement providedby the sensor device is translated to a volume and/or percentagemeasurement value using a shape/volume profile of the container typeassociated with the sensor device. In some embodiments, the process ofFIG. 5 is initiated when a user initiates a sensor device configurationprocess using an interface device.

At 502, a sensor device identifier of a sensor device is received. Insome embodiments, the sensor device is sensor device 100, 200, 300, 350and/or 360 of FIGS. 1-3D. In some embodiments, the sensor device issensor device 402 or 404 of FIG. 4. In some embodiments, the sensordevice identifier has been wirelessly transmitted by the sensor device.For example, the sensor device broadcasts a unique identifier of thesensor device using a BLUETOOTH (e.g., BLUETOOTH low energy), WiFi,and/or other local or short range wireless communicationprotocol/signal. In some embodiments, receiving the sensor deviceidentifier includes listening for a signal from a desired type of device(e.g., listen for a signal that is identified as sent by a sensordevice). In some embodiments, the sensor device identifier is receivedvia a wired connection. In some embodiments, the sensor deviceidentifier has been transmitted by the sensor device in response to auser indication to the sensor device. For example, when a button on thesensor device is pressed for at least a threshold period of time, thesensor device transmits the sensor device identifier.

At 504, it is determined whether the sensor device identifier has beenalready associated with a container type. For example, the sensor devicehas been previously configured for a specific container type at 514 ofFIG. 5. In some embodiments, a user desires to know which container typehas been already associated with the sensor device. For example, a usermay have a plurality of sensor devices that have been each alreadyconfigured for and capped on a specific type of container. The user mayneed to remove all of the sensor devices from their associatedcontainers to wash the sensor devices. For example, certain food servicehealth codes may require restaurants/bars to periodically wash bottlecap spouts and sensor devices are configured as bottle cap spouts.However, because each sensor device has been configured for a specificcontainer, once the sensor devices have been washed, the sensor devicesmay need to be returned back to the correct specific type of containerassociated with each sensor device. Although one alternative isreconfiguring each sensor device after being washed, the process ofreconfiguring each sensor device may be inefficient and cumbersome toperform after each wash as compared to simply returning each sensordevice back to the correct specific type of container.

In some embodiments, determining whether the sensor device identifierhas been already associated with a container type includes determiningwhether a storage structure (e.g., table, database, list, etc. storedlocally at an interface device and/or remotely at a backend server)includes an entry associating the sensor device identifier with thecontainer type. In some embodiments, determining whether the sensordevice identifier has been already associated with a container typeincludes analyzing information received from the sensor device. Forexample, the sensor device provides data indicating that the sensordevice has been already associated with a container type and configuredfor the container type.

If at 504 it is determined that the sensor device identifier has beenalready associated with a container type, at 506, an indication of thecontainer type is provided. For example, an identifier of the containertype is displayed on a screen of an interface device to allow a user toreturn the sensor device back to a container that is of the displayedtype. In some embodiments, an indication of the last determinedremaining content amount/level determined using the sensor device isprovided. For example, there may exist a plurality of containers of thesame type and using the content amount/level information, the user isable to return the sensor device back to the identified container typewith the identified content level. In some embodiments, an indication isreceived from a user to reconfigure the sensor device and the processproceeds to 508 (not shown). For example, although the sensor device hasbeen already associated with a container type, a user desires toassociate the sensor device with a different container type and the userpresses a button on the sensor device to reconfigure the sensor device.

If at 504 it is determined that the identifier has not been alreadyassociated with a container type, at 508, communication is establishedwith the sensor device. For example, a wireless communication channel isestablished. In some embodiments, a BLUETOOTH connection is established.For example, the sensor device is paired with an interface device andthe sensor device enters into a paired communication mode.

At 510, an identification of a container type to be associated with thesensor device is received. In some embodiments, the container typeidentifies a type of container to be covered/capped/engaged by thesensor device. For example, an identification of the specific beveragebottle type to be capped by the sensor device is received.

In some embodiments, the container type identification is received via auser indication. For example, a user selects the container type from alist of container types. In some embodiments, receiving the containertype includes receiving an identification of a product and/or packagingto be engaged with the sensor device. For example, a user indicates aproduct (e.g., liquor product in a specified packaging) to be engagedwith the sensor device. In some embodiments, there exists a database ofcontainer types for various types of commercially sold beverage packagesand the database is utilized to determine a corresponding container typeto a user identification of a product.

In some embodiments, receiving the identification of the container typeincludes receiving a camera image. For example, using a camera of aninterface device, a user captures an image of at least a portion of thecontainer to be associated with the sensor device and the image (e.g.,an image of a label on a product packaging) is analyzed to automaticallydetermine the container type of the container.

In some embodiments, receiving the identification of the container typeincludes receiving a barcode/product identifier associated with thecontainer type. For example, using an interface device, a user capturesan image of a barcode (e.g., UPC barcode) on the product container to beassociated with the sensor device and the image is analyzed to read thebarcode identifier of the container. In some embodiments, a containertype corresponding to the barcode identifier is identified. For example,the barcode identifier is utilized to search a database that includesentries that associate barcode identifiers with corresponding containertypes. In some embodiments, the barcode identifier is provided to aserver and the server provides a corresponding container typeidentifier. In some embodiments, there exists a plurality of containerstypes associated with a barcode/product identifier and a user providesan indication to indicate the specific container type among theplurality of container types associated with the sensor device.

In some embodiments, the sensor device measures a distance between thesensor device and a level of liquid remaining in a container todetermine the liquid fill level. For example, a transmitter of thesensor device sends out a signal (e.g., ultrasonic signal) that getsreflected by the surface of the liquid in the container. The reflectedsignal is detected by a receiver of the sensor device. By measuring theamount of time it took to receive the reflected signal, the distancetraveled by the signal before being reflected (e.g., distance betweensensor device and liquid surface is half of the total distance traveledby the signal) may be determined by multiplying the amount of time bythe speed of the signal (e.g., speed of sound).

In order to correctly determine the amount of content included in thecontainer from the distance information, various parameters of thecontainer must be known. For example, the height of the interior of thecontainer and variations of the cross sectional volume/area of thecontainer across the various depths of the container are needed tocalculate the amount/percent of content left in the container. In oneexample, if the total distance between the bottom of the container andthe sensor device is known, the fill height of the container can bedetermined (e.g., total distance between the bottom and the sensordevice minus distance between the sensor device and liquid surface). Ifthe shape and volume of the container are known, the volume of liquidcontained in container 102 may be determined. In some embodiments, thecontainer type identification is utilized to obtain aformula/table/database/data structure that maps a measured distance(e.g., fill height, height between liquid surface and sensor device,etc.) to a corresponding remaining content volume/percentage for thespecific container type.

At 512, the identified container type is associated with the sensordevice. In some embodiments, associating the container type with thesensor device includes storing a data entry (e.g., in a database) thatassociates the container type with the sensor device identifier. Forexample, a database of associations between various sensor deviceidentifiers and corresponding associated container types is maintainedat an interface device (e.g., device 406 of FIG. 4) and/or a backendserver (e.g., server 410 of FIG. 4). This database may also be utilizedto store determined content volume/level of containers being tracked bythe various sensor devices.

At 514, a configuration corresponding to the identified container typeis provided to the sensor device. In some embodiments, a sensor deviceconfiguration specific to the identified container type is obtained andprovided to the sensor device for configuration. For example, the sensordevice needs to be configured for a specific type of container type toenable the sensor device to more accurately measure the amount/level ofcontent remaining in a container. In some embodiments, the configurationcorresponding to the identified container type is provided via acommunication established with the sensor device in 508.

In some embodiments, the sensor device includes a transmitter fortransmitting a signal and a receiver for receiving the signal that hasbeen reflected. The parameters of the signal being transmitted may needto be configured specifically for the container that holds the contentto be measured. For example, in order to reduce undesired reflectionswithin the container, the transmitted signal is generated based on theparameters specifically configured for the specific container type. Insome embodiments, the configuration specifies a waveform/shape of asignal, a length/width of a signal component (e.g., pulse width), aprofile of a signal component, a content of a signal component, a numberof pulses in the signal component, a frequency of the signal component,an amplitude/intensity of the signal component, a modulation of thesignal component (e.g., pulse-width modulation to be utilized), a dutycycle of the signal component, etc. For example, the signal includes oneor more component signal pulses and the configuration specifies theshape/waveform of each signal pulse. In some embodiments, theconfiguration specifies a number of signal pulses to be transmittedsequentially to measure a content amount/level of a container. In someembodiments, varying the frequency and number of waves helps create aresonance with the microphone under various heights in differentbottles. In some embodiments, the configuration specifies aconfiguration of a receiver of the sensor component. For example, a typeand/or a parameter of one or more signal filters to be utilized tofilter a received reflected signal is specified by the configuration. Inanother example, automatic gain controller settings/parameters arespecified by the configuration.

In some embodiments, the configuration specifies one or moreconfigurable threshold settings to be utilized to detect when a reflectsignal has been received by a receiver. For example, a signaltransmitted by the transmitter is reflected within a container and thereceiver is listening for the reflected signal. However, noise and otherfactors may cause undesirable signals to be received by the receiver. Inorder to detect the desired reflected signal that is stronger than thenoise, a detection threshold can be adjusted such that a received signalwith an amplitude/energy over the threshold is detected as a reflectionof the sent signal while a signal with an amplitude/energy below thethreshold is ignored as noise. However, given the variance in bottleshape and the transmitted signal, the ideal threshold varies. Thesevariances in the configurable threshold settings may be specified by theprovided configuration such that the fill level sensor is able todynamically adjust the threshold as specified based on the environmentof the fill level detection.

In some embodiments, the provided configuration specifies a plurality ofdifferent sets of configuration parameters for different fill levels ofthe container. In some embodiments, one or more sets of configurationparameters are indexed according to a corresponding content level. Forexample, each set of configuration parameters corresponds to a differentrange of fill levels of the container. In some embodiments, using adefault set of configuration parameters, an initial approximate filllevel is determined, and based on the initially determined approximatefill level, a more specific set of configuration parameterscorresponding to the initial approximate fill level is utilized todetermine a more specific fill level. The default set of configurationparameters may be specific to the specific detected container (e.g.,default set of configurations is provided to the sensor device based onthe container type) or same across a plurality of different types ofcontainers (e.g., default set is preconfigured into sensor device). Insome embodiments, each set of configuration parameters may specify oneor more parameters for a signal to be transmitted (e.g., interrogationsignal) for reflection off content of the container and/or one or moreparameters for receiving and processing the reflected transmittedsignal.

In some embodiments, each set of configuration parameters is associatedand indexed with a specific range of content fill levels correspondingto when the particular set of configuration parameters is to beutilized. For example, a first set of configuration parameters is to beutilized when a detected fill level is between 0-100 mm (e.g., for abottom region of the container), a second set of configurationparameters is to be utilized when a detected fill level is between101-200 mm (e.g., for a middle region of the container), and a third setof configuration parameters is to be utilized when a detected fill levelis above 200 mm (e.g., for a top region of the container).

FIG. 6 is a diagram illustrating an embodiment of a user interface forspecifying a container type to be associated with a sensor device. Insome embodiments, the interface of FIG. 6 is provided on user device 412and/or interface device 406 of FIG. 4. In some embodiments, theinterface of FIG. 6 is utilized to provide the container type receivedin 510 of FIG. 5.

Interface screen 602 instructs a user to turn on the sensor device(e.g., by pressing a button on the sensor device for at least aspecified period of time, the sensor device turns on and broadcasts itsidentifier) and the interface device attempts to detect the sensordevice (e.g., listens for a new BLUETOOTH LE signal from a sensordevice). When the sensor device has been detected, a connection isestablished with the sensor device (e.g., communication established at508 and configuration provided in 514 of FIG. 5). Interface screen 604shows a viewfinder display of a live camera image. Using the displayedviewfinder, a user is to capture an image of a barcode printed on aproduct container. For example, when a barcode is captured within theshown bracket guidelines, the barcode is read and analyzed to determinewhether it is a known barcode that corresponds to a particular containertype. Once a valid barcode has been detected, the interface progressesto interface screen 606. In the example shown, interface screen 606confirms that the barcode has been detected to correspond to containertype “3 Vodka 750 ml” that holds vodka contents. A user is instructed toplace a sensor device on the container holding the contents to bemeasured. Once the sensor device has been engaged with the container, auser is to select the “+” icon and the content amount/level of thecontainer is detected. The interface progresses to interface screen 608where the container type, a representative image of the product, and thelatest detected remaining content amount/level (e.g., percentageremaining) are displayed.

FIG. 7 is a flowchart illustrating an embodiment of a process fordetermining one or more sets of configuration parameters of a container.For example, the configuration provided in 514 of FIG. 5 and/or receivedin 806 of FIG. 8 is determined at least in part using the process ofFIG. 7. The process of FIG. 7 may be repeated for each different type ofcontainer.

At 702, a container to be profiled is selected. For example, a bottle tobe profiled to determine its configuration parameters is selected.Selecting the container may include scanning a barcode of the container,capturing a label of the container, selecting/providing an identifier ofthe container, etc.

At 704, the selected container at a current fill level is profiled. Insome cases, the container is initially full and the full container isprofiled. In some embodiments, profiling the container includesdetermining an expected current fill level of the container. Forexample, an authoritative measuring device is utilized to determine theexpected fill level. The authoritative measuring device may be a specialmeasuring device that provides a highly accurate measurement of a depthof the fill level of the container. In some embodiments, the expectedcurrent fill level is determined using image processing. For example, animage of the container is captured and the expected fill level of thecontainer is determined by processing the captured image to identify thedepth of the fill level captured in the image. In some embodiments, theexpected current fill level is determined using a weight scale. Forexample, a weight of an empty container is known and/or measured and aweight of the current fill level filled container is measured. Based onthe difference between these weights and the density of the contentsand/or known shape profile of the container, the expected fill level isdetermined. Once the expected fill level is determined, a configurationof a sensor device (e.g., device 200) that will yield the closest filllevel measurement to the expected fill level may be identified byiterating through various combinations of configuration parameters.

In some embodiments, a sensor device (e.g., device 200) is placed (e.g.,capped) on the container and the sensor device is configured to iteratethrough various configuration parameters. For example, measurements areperformed using various combinations of interrogation signal parametersand receiver parameters and corresponding measurement results (e.g.,identified fill/distance values) of the various combinations are stored.The combinations of various configuration parameters that are varied mayinclude various parameters for one or more of the following of aninterrogation signal: a waveform/shape of a signal, a length/width of asignal component (e.g., pulse width), a profile of a signal component, acontent of a signal component, a number of pulses in a signal component,a frequency of a signal component, an amplitude/intensity of a signalcomponent, a modulation of a signal component (e.g., pulse-widthmodulation to be utilized), a duty cycle of a signal component, etc. Thecombinations of various configuration parameters that are varied mayinclude various parameters for one or more of the following for a signalreceiver: an automatic gain control, a variable gain amplifier, adetection threshold, etc. For example, for a given interrogation signalwith the same energy, a content reflected signal will be higher inenergy (e.g., requiring a higher detection threshold) for a greater filllevel as compared to a lower fill level (e.g., requiring a lowerdetection threshold since a reflected interrogation signal had to travela greater distance and experienced greater attenuation).

At 706 it is determined whether the container is empty. For example, itis determined whether the container is empty based on the weight of thecontainer.

If at 706 it is determined that the container is not empty, at 708,content of the selected container is removed by an incremental amount.For example, a controlled amount of content is emptied from thecontainer for a next profiling of the container at the new fill level.In some embodiments, the amount of content removed from the container isa preconfigured amount based on a volume, weight, and/or content height.For example, content is removed from the container such that the heightof the content within the container drops by 1 mm. In some embodiments,the incremental amount of content is removed automatically. For example,a spout and a valve/pump has been added to the container (e.g.,container has been drilled near the bottom of the container and aspout/valve/pump has been added) and the valve and/or pump isautomatically controlled to empty a predetermined amount of content.Once the incremental amount of content has been emptied, the processreturns to 704 where the new fill level of the container is profiled.

If at 706 it is determined that the container is empty, at 710, thedetermined measurement results of various combinations of configurationparameters at various content fill levels are analyzed to identifygroupings of content fill level ranges and a corresponding set ofconfiguration parameters for each content fill level range. For example,for each profiled content fill level, the various fill level measurementresults of the various configuration parameter combinations are sortedand ranked based on closeness to the expected fill level. Then a set ofconfiguration parameters that will result in fill level measurementsthat are within an acceptable tolerance for a greatest continuous rangeof fill levels is identified. Then for remaining fill level ranges, anext set of configuration parameters that will result in fill levelmeasurements that are within the accepted tolerance for a greatestcontinuous range of remaining fill levels is identified. This process ofidentifying a next set of configuration parameters is repeated until allfill levels have been covered by fill level corresponding configurationparameter sets.

At 712, the content fill level ranges and corresponding configurationparameters for each range are stored as the configuration for thecontainer type of the selected container. For example, at least aportion of the stored configuration is provided in 514 of FIG. 5 and/orreceived in 806 of FIG. 8 as the configuration for a particular type ofcontainer.

FIG. 8 is a flowchart illustrating an embodiment of a process forconfiguring a sensor device. The process of FIG. 8 may be implemented onsensor device 100, 200, 300, 350 and/or 360 of FIGS. 1-3D.

At 802, a sensor device identifier is broadcasted. In some embodiments,the sensor device identification is the identification received at 502of FIG. 5. In some embodiments, the sensor device identifier istransmitted in response to entering a pairing mode of the sensor device.For example, the sensor device enters a BLUETOOTH pairing mode toadvertise availability of the sensor device for paring. In someembodiments, the sensor device identifier is broadcasted in BLUETOOTHadvertising/beacon mode. In some embodiments, a sensor device is firstoperated in paired mode (e.g., Generic Attribute Profile (GATT)client/server) then switched to advertising/beacon mode. In someembodiments, the sensor device identifier is broadcasted in response toan engagement of a button of the sensor device. For example, when a userpresses a button on the sensor device for at least a threshold amount oftime, the sensor device enters into a mode that broadcasts the sensordevice identification.

At 804, a communication with an interface device is established. In someembodiments, establishing the communication includes establishing thecommunication established in 508 of FIG. 5. In some embodiments, aBLUETOOTH connection is established. For example, the sensor device ispaired with an interface device and the sensor enters into a pairedbidirectional communication mode.

At 806, a configuration is received from the interface device. In someembodiments, the received configuration is the configuration provided in514 of FIG. 5. In some embodiments, the received configuration specifiesone or more parameters of an interrogation signal that is to bereflected off contents within a container to measure an amount and/orfill level of content included in the container. In some embodiments,the configuration specifies one or more parameters of a receiver of thereceived reflected interrogation signal. In some embodiments, theconfiguration specifies one or more reflection detection thresholds.

In some embodiments, the configuration specifies one or more parametersof a filter to apply to the received reflected interrogation signal. Insome embodiments, the configuration specifies one or more parameters ofan automatic gain controller of the receiver. In some embodiments, theconfiguration includes an identifier of a profile that has been alreadystored in a data storage of a sensor device.

In some embodiments, the received configuration specifies a plurality ofdifferent sets of configuration parameters. For example, each setcorresponds to a different fill level of the container (e.g., each setindexed to a range of fill levels). In some embodiments, using a defaultset of configuration parameters (e.g., default set of configurationparameters is included in the received configuration), an initialestimated fill level is determined and based on the initial estimate ofthe fill level, a more specific set of configuration parameters includedin the received configuration is identified to be utilized to determinea more accurate fill level.

In some embodiments, each set of configuration parameters identified bythe received configuration specifies one or more signal parameters togenerate a distinct interrogation signal corresponding to the set. Forexample, each set of configuration parameters specifies one or more ofthe following parameters of a signal to be transmitted: a waveform/shapeof a signal, a length/width of a signal component (e.g., pulse width), aprofile of a signal component, a content of a signal component, a numberof pulses in a signal component, a frequency of the signal component(e.g., changing a frequency of an input signal to a speaker changes aspectrum of frequencies outputted by the speaker), anamplitude/intensity/energy of a signal component, a modulation of asignal component (e.g., pulse-width modulation to be utilized), a dutycycle of a signal component, etc. In some embodiments, each set ofconfiguration parameters is identified/indexed for use for a specifiedrange of container fill levels. For example, because the shape of theempty portion of the container (e.g., contributing to differentreflection patterns) and a distance an interrogation signal must travelmay vary with the fill level of the container, a different interrogationsignal, detection threshold and/or receiver setting is to be utilizedfor various different fill levels and the signal parameters of thesedifferent interrogation signals are specified as different sets ofconfiguration parameters. In some embodiments, the same interrogationsignal may be utilized for a particular container regardless of filllevel.

In some embodiments, the interrogation signal is shaped to produce aninterrogation signal that will result in a received signal with signalproperties for more accurate and consistent threshold detection todetect reflections of the interrogation signal. In some embodiments, theinterrogation signal is shaped to produce an interrogation signal thatwill result in a received signal with a narrow peak for more accurateand consistent peak detection of a received reflected signal. Whenmultiple pulses are included in the interrogation signal, a receivedsignal is a convolution of the received signal components of the pulses.This resulting signal may be shaped by varying the number, amplitude,width, etc. of the pulses to produce a narrow peak (e.g., correlationpeak for detecting time/length interrogation signal travels to determinefill level). For example, pulse-width modulation to be performed isspecified by a received set of configuration parameters.

In some embodiments, although a manufacturer/vendor specification of aspeaker to be utilized to transmit an interrogation signal specifies aminimum energy of an input signal to the speaker, a configurationparameter specifies a signal energy that is lower than the specifiedrated energy of the speaker manufacturer/vendor. For example, although amanufacturer specifies that 6 volts is the rated voltage that should beprovided to a speaker, a voltage between 2-2.8 volts is specified by aconfiguration parameter to be provided to the speaker. In anotherexample, a voltage as low as 1 volt is supplied to the speaker.

In some embodiments, the received configuration specifies configurationparameters of a signal receiver. For example, parameters of an automaticgain control, a variable gain amplifier, a detection threshold, etc. arespecified in the received configuration for receiving and processing areflected interrogation signal. In some embodiments, the receivedconfiguration specifies a plurality of different sets of receiverconfiguration parameters. For example, each set of receiverconfiguration parameters corresponds to a different current fill level(e.g., range) of the container (e.g., different receiver configurationparameters corresponding to different sets of interrogation signalconfiguration parameters of the various different fill level ranges).

FIG. 9 is a flowchart illustrating an embodiment of a process fordetecting a fill level of a container using a fill level sensor. Theprocess of FIG. 9 may be implemented on sensor device 100, 200, 300, 350and/or 360 of FIGS. 1-3D. At least a portion of the process of FIG. 9may be continually performed to detect an updated fill level of acontainer.

At 902, it is determined whether a fill level measurement trigger isdetected. For example, an accelerometer, a motion detector, atilt/orientation sensor, or another detector/sensor included in a filllevel sensor device that detects movement and/or an orientation of thefill level sensor device detects a triggering condition to start filllevel measurement. In some embodiments, data provided by anaccelerometer, a motion detector, and/or a tilt/orientation sensor isreceived and analyzed to detect whether a detected movement meets aspecified threshold to trigger a fill level measurement. For example, itis determined whether a magnitude of a detected movement is for at leasta threshold amount of distance, acceleration, force, time, and/or angle.In the example of a fill level sensor device that includes an integratedpourer spout, a fill level measurement trigger is detected when the filllevel sensor is tilted beyond a threshold angle (e.g., corresponding totipping of a bottle to pour contents out of the bottle via the pourer).In the example of a fill level sensor device that functions as a bottlestopper that needs to be removed from a bottle before pouring contentsout of the bottle, a fill level measurement trigger is detected when adetected z-direction (e.g., up direction) acceleration exceeds athreshold value (e.g., corresponding to removal of the bottle stopperwith sufficient force/acceleration). By using the trigger to initiatethe fill level measurement, the device can be placed in a low powerstate to conserve power while waiting for the trigger.

If at 902 it is detected that the fill level measurement trigger isdetected, at 904, the process waits until a detection criteria has beenmet. For example, the measurement trigger may have been caused movementassociated with pouring content out of a spout of the device and inorder to obtain an accurate measurement, a wait time is needed to ensurethat the liquid content of the container has settled from the movement.

In some embodiments, the detection criteria specifies an orientationcriteria. For example, before fill level measurement is to be performed,an accelerometer, gyroscope, and/or tilt/orientation sensor mustindicate that the fill level sensor is in the proper orientationassociated with performing an accurate fill level measurement. In oneexample, while a user is still tipping the sensor and the containerupside down to pour contents out of the spout of the device, the devicecannot properly measure the fill level and the detection criteria hasnot been met. In another example, if the user has uncapped the filllevel sensor from the container and lays the fill level sensor down onits side on a table, the sensor device is detected as not being in thedesired upright orientation and the detected criteria has not been met.

In some embodiments, the detection criteria specifies a movementcriteria. For example, before the fill level measurement is to beperformed, an accelerometer, gyroscope, and/or orientation sensor mustindicate that the movement/position of the fill level sensor device isrelatively stable (e.g., detected movement within specified period oftime is within a specified range or below a threshold). In one example,if the device is still in the process of being moved, an accurate filllevel measurement cannot be achieved due to movement of contents withinthe container.

These detection criteria in combination may specify that in order tomeet the detection criteria, the fill level sensor must be orientedupright and movement stable for at least a set period of time. In someembodiments, if the detection criteria is not met for at least an errorthreshold amount of time and/or an error is detected, an error/messageis provided (e.g., provided to server 410 of FIG. 4 and/or user) toallow a user to correct the error (e.g., user forgot to cap thecontainer using the sensor device after pouring contents out of thecontainer and a reminder is provided to the user after a preconfiguredamount of time to put the sensor device back on the container).

At 906, a fill level measurement is performed. For example, aninterrogation signal is sent and its reflection is detected and analyzedto determined content fill level of a container engaged to the filllevel sensor device. In various embodiments, at least a portion of theprocess of FIG. 10 is utilized to perform the fill level measurement.

At 908, it is determined whether a periodic detection time has beenreached. Rather than only relying on the fill level measurement trigger,a fill level measurement is performed periodically to ensure correctfill level detection and it is determined whether it is time to performa periodic fill level measurement. For example, errors detecting thefill level measurement trigger and/or detecting incorrect fill levelsmay be corrected by periodically performing a fill level measurement.The amount of time between periodic detection may be regular intervalsand/or based on dynamic factors. For example, periodic detection time isreached periodically every set amount of time (e.g., every ten minutes).In another example, periodic detection time is reached after a setamount since a previous fill level measurement (e.g., set amount of timeafter triggered measurement). In some embodiments, the periodicdetection time is dynamically adjusted based on one or more of thefollowing: time of day, day of week, battery power, magnitude ofvariances in previous measurements, sensor data, etc. In an alternativeembodiment, periodic detection is optional and/or not performed. In someembodiments, once a threshold number of consecutive periodic detectionshave been performed and/or results in measurements that are consistentwith one another, periodic detection is not performed again to conservepower until a triggering criteria is detected (e.g., detection of changein motion, acceleration, orientation, etc.). In some embodiments,periodic detection time triggering of fill level measurements is onlyperformed during a specified time window (e.g., during business hours).

If at 908 it is determined that the periodic detection time has beenreached, at 910, fill level measurement is performed. For example, aninterrogation signal is sent and its reflection is detected and analyzedto determine content fill level of a container engaged to the fill levelsensor device. In various embodiments, at least a portion of the processof FIG. 10 is utilized to perform the fill level measurement.

FIG. 10 is a flowchart illustrating an embodiment of a process formeasuring a fill level of a container using a fill level sensor device.The process of FIG. 10 may be implemented on sensor device 100, 200,300, 350 and/or 360 of FIGS. 1-3D. In some embodiments, at least aportion of the process of FIG. 10 is included in 906 and/or 910 of FIG.9.

At 1002, a fill level measurement is performed to determine a measure offill level. In some embodiments, performing the fill level measurementincludes sending an interrogation signal (e.g., sonic/ultrasonic signal)and detecting/receiving a reflection of the interrogation signal. Bymeasuring the amount of time it takes for the interrogation signal totravel from a sensor device engaged at the top of the container tocontent (e.g., liquid) remaining within the container and reflect backto the sensor device, the distance traveled by the interrogation signalbefore being reflected (e.g., distance between sensor device 100 and theliquid surface is half of the total distance traveled by the signal asshown in FIG. 1) may be determined by multiplying the amount of time bythe speed of the signal (e.g., speed of sound when the interrogationsignal is an ultrasonic signal). If the total distance between thebottom of the container and the sensor device is known, the fill heightof the container can be determined (e.g., total distance between bottomand sensor device minus distance between sensor device and contentsurface). If the shape and volume of the bottle are known, thevolume/amount of content contained in the container may be determined.

The determined measure of fill level corresponds to an amount of contentincluded in the container engaged by the fill level sensor device. Forexample, the measure of fill level indicates a measured distance betweenthe sensor device and the content in the container. In some embodiments,the determined measure of fill level is determined by adjusting ameasured distance between a receiver of the sensor device and thecontent in the container by a predetermined and/or dynamicallydetermined adjustment distance value. For example, the adjustmentdistance value is added to the measured distance, and the adjustmentdistance value is determined based on a distance between the receiver ofthe sensor device and the top of the container engaged by the sensordevice and/or a transmitter/receiver time delay (e.g., delay ininitiating transmission and actual signal transmission, delay in asignal reaching a receiver and the receiver detecting the signal, etc.).In another example, the measure of fill level specifies a detected timeit took for the sent signal to bounce back from content included in thecontainer to the sensor device. In another example, the measure of filllevel specifies the volume of content remaining in the container (e.g.,absolute volume or a difference in volume from a previous measurement).

At 1004, another fill level measurement is performed to determineanother measure of fill level. By performing another measurement of thefill level a time right after the previous measurement in response tothe same fill level measurement trigger (e.g., trigger in 902 of FIG.9), the previously determined measure of fill level in 1002 is able tobe verified against the new measure of fill level (e.g., the measures ofthe fill level should ideally be the same when measurements areperformed back-to-back without any intervening fill level measurementtrigger) to ensure repeatability of the fill level measurement prior toupdating the content fill level of the container using the measurementdata. In various other embodiments, measurements of fill level may beperformed more than two times for additional verification.

At 1006, it is determined whether a reliable measure of fill level hasbeen determined. For example, it is determined that a reliable measureof fill level has been determined in the event the last two consecutivemeasures of fill levels have been successfully determined (e.g., in 1002and 1004 or two consecutive iterations of 1004) and the last twodetermined measures of fill levels are the same/similar (e.g., within athreshold difference value). By verifying that the last two determinedmeasures of fill levels are the same/similar, repeatability of themeasurements is verified in determining that a reliable measure of filllevel has been detected.

In some embodiments, determining whether a reliable measure of filllevel has been determined includes comparing the last two measurementsof fill level (e.g., compare measure of fill level determined in 1002with the measure of fill level determined in 1004 or compare twodifferent measures of fill level determined in two consecutiveiterations of 1004). For example, if a difference (e.g., valuedifference or percentage difference) between the measures of fill levelthat have been determined is within a threshold range (e.g., less than athreshold value of 3 mm) then it is determined that a reliable measureof fill level has been determined and otherwise it is determined that areliable measure of fill level has not been determined.

If in 1006, it is determined that a reliable measure of fill level hasnot been determined, at 1008, it is determined whether a fill levelmeasurement stop criteria has been met. For example, the fill levelmeasurement is to be repeated until a consistent measure of fill levelhas been detected in the last two consecutive measurements or a limit onthe number of times the fill level measurement is to be repeated isreached (e.g., maximum of up to five fill level measurements can beperformed prior to concluding that a reliable measure of fill levelcannot be determined). Thus in some embodiments, determining whether thefill level measurement stop criteria has been met includes determiningwhether the total number of fill level measurements performed in anattempt to determine a reliable measure of fill level (e.g., fill levelmeasurements performed in response to the same triggering conditioninstance to determine a fill level corresponding to the triggeringcondition instance) has reached a specified limit. If the specifiedlimit has been reached, it is determined that the fill level measurementstop criteria has been met. In some embodiments, determining whether thefill level measurement stop criteria has been met includes determiningwhether a stopping error has been detected during a fill levelmeasurement. For example, certain detected errors (e.g., low batteryerror, sensor malfunction, sensor misalignment, sensor device positionerror, etc.) indicate that a reliable measure of fill level cannot bedetermined without user or other intervention.

If in 1008, it is determined that the fill level measurement stopcriteria has not been met, the process returns to 1002 where anotherfill level measurement is performed to determine another measure of filllevel.

If in 1008, it is determined that the fill level measurement stopcriteria has been met, at 1010, it is determined that a reliable measureof fill level cannot be determined. For example, an error indication(e.g., identifying a reason of the error) is transmitted via a wirelesssignal to a hub or other computer device. This indication may beprovided to a user to allow the user to troubleshoot or replace thesensor device.

If in 1006, it is determined that a reliable measure of fill level hasbeen determined, at 1012, it is determined whether to report a selectedmeasure of fill level. For example, a selected measure of fill level isreported if the selected measure of fill level is sufficiently differentfrom a previously reported measure of fill level (e.g., differencebetween selected measure of fill level and a previously reported measureof fill level determined to be reliable is greater than a thresholddifference value). In this example, if it is determined that thedifference between the selected measure of fill level and the previouslyreported measure of fill level (e.g., previously determined to bereliable) is less than or equal to the threshold difference value, it isdetermined that a reliable measure of fill level has been determined andif it is determined that the difference between the selected measure offill level and the previously reported measure of fill level is greaterthan the threshold difference value, it is determined that a reliablemeasure of fill level has not been determined. This allows onlymeaningful differences in fill levels to be reported, allowing savingsin power/energy from not transmitting a value that is not sufficientlydifferent from a previously reported measure of fill level (e.g., notreport slight variation between measures of fill levels caused bydetection measurement noise that does not attribute to a meaningfuldifference in container fill level).

The selected fill level may be the measure of fill level determined at1002 and/or 1004. For example, the last determined measure of fill levelis selected as the selected fill level. In another example, a measure offill level among the ones determined in 1002 or in iterations of 1004that is closest to a previously reported measure of fill level isselected. In some embodiments, the selected fill level is determinedbased on the measures of fill level determined in 1002 and/or one ormore iterations of 1004. For example, an average of the last twomeasures of fill level is calculated and selected as the selectedmeasure of fill level. Thus, the selected fill level may be chosen(e.g., last determined value, average value, etc.) among measures offill levels that have been identified as same/similar (e.g., within athreshold difference value) in 1006.

If at 1012, it is determined to report the selected measure of filllevel, at 1014, the selected measure of fill level is reported.Reporting the selected measure of fill level may include transmitting anidentifier of the sensor device, a value indicating when the associatedfill level measurement was performed (e.g., timestamp, instance number,etc.), and a value of the selected measure of fill level to interfacedevice 406 and/or server 410 of FIG. 4.

In some embodiments, a previously reported selected measure of filllevel (e.g., along with associated timestamp or instance value) is alsoreported (e.g., reported in a previous iteration of 1012) along with thedata reported for the newly determined/selected measure of fill level.

By sending the previous reported selected measure of fill level alongwith the newly determined/selected measure of fill level, the recipientof the report is able to determine whether any previously reportedmeasure of fill level was not received and obtain the previouslyreported measure of the fill level via the new report if the recipienthappened to have not received it previously. The reported selectedmeasure of fill level is used by the recipient to track the current filllevel of the container. For example, the selected measure of fill levelis provided by the fill level sensor device (e.g., along with anidentifier of the fill level sensor device and associatedtime/iteration/instance value) to interface device 406 that updates aserver stored record of the fill level and/or content volume of thecontainer measured by the fill level sensor device.

If at 1012, it is determined to not report the selected measure of filllevel, at 1016, the selected measure of fill level is not reported.Despite not reporting the measure of fill level, other indications maybe sent (e.g., indication sent to interface device 406 of FIG. 4 thatmeasurement was performed but not reported). In some embodiments, aheartbeat message may still be sent despite not reporting the actualmeasure of fill level to indicate an operational status of the sensordevice.

In some embodiments, if an error is detected by the fill level sensordevice during any of the steps in the process of FIG. 10, the processends and an indication of the error is provided. For example, detectederrors such as detected movement during fill level measurement, improperfill level sensor positioning/latch to container, blockedreceiver/sensor (e.g., liquid beaded on sensor or receiver and ishindering the detection), etc. are indicated and the process stops toallow a user to correct the error.

FIG. 11 is a flowchart illustrating an embodiment of a process for usinga fill level sensor device to perform a fill level measurement todetermine a measure of fill level of a container. The process of FIG. 11may be implemented on sensor device 100, 200, 300, 350 and/or 360 ofFIGS. 1-3D. In some embodiments, at least a portion of the process ofFIG. 11 is included in 1002 and/or 1004 of FIG. 10. For example, atleast a portion of the process of FIG. 11 is executed by a fill levelsensor each time a fill level measurement is performed by the sensordevice to determine a measure of fill level indicating an amount ofcontent included in the container engaged by the sensor device.

At 1102, an interrogation signal to be transmitted is selected. In someembodiments, the interrogation signal to be transmitted is selectedbased on a received configuration. For example, the configurationreceived in 806 of FIG. 8 specifies a default set of configurationparameters of a default interrogation signal to be utilized to determinean initial approximate fill level. The received configuration may alsospecify one or more fill level range specific sets of configurationparameters that specify the specific interrogation signal to be utilizedfor a particular fill level. For example, for each range of fill levels,a different set of configuration parameters for a specific interrogationsignal to be utilized for the particular fill level range is specifiedin the received configuration. In one example, once an initialapproximate fill level is determined using the default set ofconfiguration parameters, a specific set of configuration parameterscorresponding to a specific fill level range that includes the initialapproximate fill level is selected as the configuration parameters ofthe interrogation signal to be utilized to determine a more specificfill level. In some embodiments, the received configuration specifies aplurality of sets of configuration parameters and each set is utilizedto generate and transmit a corresponding interrogation signal one ormore times until a set that results in a consistent fill levelmeasurement has been identified. This set of configuration parametersthat resulted in the consistent fill level measurement may be utilizedfor subsequent measurements of different fill levels and/or this searchfor a consistent result producing set of configuration parameters may beperformed periodically and/or each time a fill level measurement isperformed. In some embodiments, the measurement fill level of theidentified set is utilized to select the set of configuration parametersto be utilized to determine a more accurate fill level. For example, theset of configuration parameters for the fill level range correspondingto the measured fill level is selected.

In some embodiments, based on a previous fill level, the interrogationsignal to be transmitted is identified. For example, a previouslyutilized interrogation signal (e.g., corresponding to a previouslyselected set of configuration parameters) is selected for use unless apreviously determined fill level indicates that another interrogationsignal (e.g., corresponding to another set of configuration parameters)should be utilized (e.g., a next fill level range interrogation signalis selected because a previously determined fill level is at the limitof or beyond the valid fill level range of the previously utilizedinterrogation signal).

In some embodiments, the interrogation signal is consistent across allfill levels of the container. For example, although the interrogationsignal is specific to a particular type of container, the interrogationsignal is consistent for all fill levels of the container. In someembodiments, the interrogation signal is an impulse. In someembodiments, the interrogation signal is an acoustic signal. In someembodiments, the interrogation signal is an ultrasonic signal. In analternative embodiment, the selected interrogation signal is a standarddefault interrogation signal to be used when performing a fill levelmeasurement.

At 1104, the selected interrogation signal is transmitted. In someembodiments, the transmitted interrogation signal is generated using aselected set of configuration parameters within the receivedconfiguration. In some embodiments, the selected interrogation signalincludes one or more signal pulse components specified by the selectedset of configuration parameters. For example, each signal pulse may beidentical and the signal pulses are emitted sequentially with anoptional period of no signal (e.g., silence) between the signal pulses.

The number of signal pulses, the length of the signal pulses, afrequency of the signal pulses, a signal content of the signal pulses, astrength/magnitude of the signal pulses, a profile of the signal pulses,a waveform of a signal pulse, a length of null signal between the signalpulses, a length/width of a signal component, a pulse width, anamplitude/intensity of the signal component, a modulation of the signalcomponent (e.g., pulse-width modulation to be utilized), and/or a dutycycle of the signal component, etc. may be specified by the receivedconfiguration.

The variations of the interrogation signal may be due to the type ofcontainer that is holding the content to be measured and/or fill levelrange of the container. For example, the thickness of the container, thematerial of the container, a shape of the container, a length of thecontainer, a width of the container, a size of the container, and/or anamount/type of the content included in the container may all affect howand where the interrogation signal travels and bounces within thecontainer and the received configuration is specific to the containertype and/or fill level of the container to improve the contentamount/volume/level measurement of a sensor device.

In some embodiments, the interrogation signal is consistent across allfill levels of the container. In some embodiments, the interrogationsignal is an impulse generated by a speaker. In some embodiments, theinterrogation signal is an acoustic signal. In some embodiments, theinterrogation signal is an ultrasonic signal.

In some embodiments, by measuring the amount of time it takes for theinterrogation signal to travel from a sensor device engaged at the topof the container to content (e.g., liquid) remaining within thecontainer and reflect back to the sensor device, the distance traveledby the interrogation signal before being reflected (e.g., distancebetween sensor device 100 and liquid surface is half of the totaldistance traveled by the signal as shown in FIG. 1) may be determined bymultiplying the amount of time by the speed of the signal (e.g., speedof sound when the interrogation signal is an ultrasonic signal). If thetotal distance between the bottom of the container and the sensor deviceis known, the fill height of the container can be determined (e.g.,total distance between bottom and sensor device minus distance betweensensor device and content surface). If the shape and volume of thebottle are known, the volume/amount of content contained in thecontainer may be determined.

At 1106, a receiver receives a received signal and the received signalis processed for analysis. For example, after the interrogation signalis transmitted, the receiver (e.g., microphone) of the sensor devicestarts detecting the received signal. As the interrogation signalreflects off content included in the container, the reflected signal isdetected in the received signal. In some embodiments, preparing thereceived signal includes filtering the received signal to improve signalto noise ratio. For example, the received signal is subject to noise andthe received signal is filtered to isolate the desired signal (e.g.,band-pass filter the received signal), and amplified (e.g., to improvesignal to noise ratio). In some embodiments, the preparing the receivedsignal includes obtaining an envelope of the received signal. Forexample, using a hardware circuit (e.g., analog) and/or other (e.g.,digital) signal envelope detector, an upper envelope of the receivedsignal is obtained. Preparing the received signal includes performing ananalog to digital conversion. For example, the analog signal output ofan envelope detector of the received signal is converted to a digitalsignal for analysis by a digital signal processor. The digital signalmay be stored in memory storage for subsequent analysis.

In some embodiments, a predetermined beginning portion (e.g.,predetermined amount of time in the beginning of the signal) of thereceived signal may be modified/ignored/removed/muted due to couplingbetween the transmitter and receiver of the sensor device. For example,when the transmitter transmits the interrogation signal, the signal maybe received by the receiver of the sensor device (e.g., conducteddirectly from the transmitter to the receiver via the housing of thesensor device) before the signal is reflected by the contents of thecontainer, and this undesired signal portion received in the beginningof the received signal is not to be identified as a reflection

In some embodiments, if an error is detected while performing step 1104and/or 1106, it is determined that the measure of fill level cannot besuccessfully determined. For example, it is expected that the containerand the fill level sensor device are not physically moved during filllevel measurement (e.g., movement may disturb contents inside thecontainer and the contents may have been moving when the measurement wasperformed). When an error is detected by the sensor device (e.g., usingdata from an accelerometer, gyroscope, orientation sensor, signalreceived, etc.) during the fill level measurement, it may be determinedto abort the process of FIG. 11, or determine that a fill levelmeasurement should be performed again and the process of FIG. 11 mayreturn to 1104 to repeat interrogation signal transmission.

At 1108, an initial analysis is performed to attempt to determine ameasure of fill level. For example, an initial analysis (e.g., analoganalysis) is performed using an analog version of the received signal inan attempt to determine the measure of fill level using an analysistechnique that takes advantage of the high signal resolution of theanalog signal. Additionally, the analog analysis may utilize lessresources than other more advanced digital analysis techniques that mayrequire more resources.

In some embodiments, the initial analog analysis is utilized to identifycandidate locations in the analog version of the received signal thatmay correspond to receipt at the receiver of a reflection of theinterrogation signal. Then more advanced techniques (e.g., digitalsignal analysis) may be utilized to identify which of the identifiedcandidate locations, if any, in the analog version of the receivedsignal most likely corresponds to receipt of the reflection of theinterrogation signal. If the initial analog analysis results in a singlecandidate location in the analog version of the received signal thatcorresponds to receipt of the reflection of the interrogation signal,this candidate location in the analog version of the received signal maybe utilized without the need to perform the more advanced technique(e.g., digital signal analysis).

The measure of fill level corresponds to an amount of content includedin the container engaged by the fill level sensor device. For example,the measure of fill level indicates a measured distance between thesensor device and the content in the container. In another example, themeasure of fill level specifies a detected time it took for the sentsignal to bounce back from content included in the container to thesensor device. In another example, the measure of fill level specifiesthe volume of content remaining in the container (e.g., absolute volumeor a difference in volume from a previous measurement).

A reflection of the interrogation signal that reaches the receiver maybe characterized by an increase in signal amplitude corresponding towhen the reflected signal reaches the receiver. In some embodiments,using the initial analysis to determine the measure of fill levelincludes identifying instances (e.g., a time value of when it occurs) inthe received signal (e.g., in processed received signal from 1106) whenthe signal strength meets a detection threshold (e.g., reflectiondetection threshold). For example, a reflection is identified bydetecting one or more instances in the received signal where theamplitude increases to transition from being below the detectionthreshold to meet the threshold. The detection threshold may bedynamically set and the detection threshold may be identified in theconfiguration received in 806 of FIG. 8. In some embodiments,determining the measure of fill level includes analyzing an envelope ofthe received signal (e.g., the processed received signal in 1106) toidentify when the reflected signal reaches the receiver. For example,the envelope of the analog signal is analyzed to detect when anamplitude of the envelope of the received signal reaches a detectionthreshold corresponding to a detected reflection. In some embodiments,an analog envelope detector (e.g., envelope detector built analogcircuit components) is included in the fill level sensor device and usedto obtain the envelope of the received analog signal that is analyzed toidentify when the reflected signal reaches the receiver.

The detection threshold may be dynamically varied based on a type ofcontainer that includes the content to be measured and/or a fill levelof the container. For example, the shape of the container and the amountof distance that an interrogation signal has to travel to detect thefill level may influence the strength of the reflected signal that isreceived at the receiver of the fill level sensor and the detectionthreshold is adjusted and set based on one or more factors. In someembodiments, specification of the detection threshold was received in806 of FIG. 8. For example, based on a type of container to beassociated with the fill level sensor, one or more detection thresholdsspecific to the particular container are provided to the fill levelsensor device during fill level detection. In some embodiments, thedetection threshold is at least based on a previously detected filllevel of the container and a previously determined fill level and/orestimated fill level of the container is utilized to select thereflection detection threshold. For example, for different ranges offill levels, a different detection threshold is to be utilized and thedetection threshold corresponding to the last measured fill level isselected to be utilized. In various embodiments, the reflectiondetection threshold may be a fixed value, a relative value, a differencevalue, an offset value or a percentage value.

In some embodiments, it is determined whether a selected amplitude valueof the signal meets the detection threshold including determining adifference between a baseline signal amplitude and the selectedamplitude value and determining whether the difference meets thereflection detection threshold (e.g., the set reflection detectionthreshold is a relative value). For example, rather than directly usingthe raw magnitude value of the selected signal amplitude, a relativedifference between the baseline signal amplitude and the selectedamplitude value is utilized to compensate for amplitude increase causedby other signal sources (e.g., the difference better measures signalamplitude increase caused by a reflection). The baseline signalamplitude may be preconfigured, specified in a received configuration,and/or dynamically determined. For example, the baseline signalamplitude is determined by averaging signal amplitude (e.g., frequencylow pass filter) of the received signal (e.g., envelope of the receivedsignal) for a window of time (e.g., for set amount of latest signalenvelope hysteresis). When comparing this difference with the reflectiondetection threshold (e.g., threshold selected/determined for comparisonwith difference values), it is determined that the selected amplitudevalue meets the reflection detection threshold if the difference isgreater than or equal to the reflection detection threshold. Otherwise,it is determined that the reflection detection threshold is not met. Insome embodiments, the selected amplitude value can only meet thereflection detection threshold if the selected amplitude value isgreater than the previous selected amplitude value (e.g., only detectsignal increases to threshold).

In some embodiments, once it has been determined that the selectedamplitude value has met the reflection detection threshold, a nextamplitude value in the signal is not eligible to meet the reflectiondetection threshold until the amplitude of the signal falls below (ormeets) a detection reset threshold. This reduces the likelihood ofdetecting another potential reflection for a period of time after apotential reflection has been identified/detected. For example, althoughthe detection threshold has been met, the amplitude of the receivedsignal may continue to increase or remain high for the same reflectionevent. In order to prevent subsequent selected amplitude values of thesame reflection event from being detected as a new potential reflection,once the selected amplitude value has been determined to meet thereflection detection threshold, subsequent values of the signal are noteligible to meet the reflection detection threshold until the amplitudeof the signal has fallen below (or has met) the detection resetthreshold.

The detection reset threshold is equal in value to the reflectiondetection threshold in some embodiments, while in other embodimentsdetection reset threshold is less in value than the reflection detectionthreshold. In some embodiments, the detection reset threshold is a valuethat is set (e.g., dynamically varied) along with the reflectiondetection threshold. For example, the detection reset threshold isrelative (e.g., a fixed amount less, a percentage less, etc.) to thereflection detection threshold.

In some embodiments, the time value that corresponds to when thereflected signal reaches the detection threshold value (e.g., whenamplitude of the received signal or envelope of the received signalreaches a corresponding threshold value) is included in the measure offill level. For example, the determined measure of fill level includes atime duration between transmitting the interrogation signal andreceiving the portion of the signal corresponding to a receivedreflection. In some embodiments, the measure of fill level is associatedwith a fill height (e.g., identifies a distance value). For example, ifthe total distance between the bottom of the container and the filllevel sensor device is known, the fill height of the container can bedetermined (e.g., total distance between bottom and sensor device minusdistance between sensor device and liquid surface determined bymultiplying speed of the signal with half signal travel time—the amountof time between transmitting the interrogation signal and receiving theportion of the signal corresponding to a received reflection). In someembodiments, the measure of fill level includes a volume value. Forexample, a table/database/data structure that maps fill length/distance(e.g., distance between content/liquid surface and sensor device, etc.)to content/liquid volume of the container is utilized to determinecontent/liquid volume corresponding to the determined fillheight/distance. Different tables/databases/data structures may existfor different types of containers and data specific to the container isreceived in 806 of FIG. 8.

At 1110 it is determined whether the initial analysis resulted in asuccessful determination of the measure of fill level. For example, ifan amplitude of the received signal (e.g., processed received signal)does not reach the threshold value of the initial analysis, it isdetermined that the measure of fill level has not been successfullydetermined.

In some cases, not only does the transmitted interrogation signaldirectly reflect off contents in the container, the transmittedinterrogation signal may bounce off container contents at othernon-direct angles as well as off walls of the container and othercomponents of the fill level sensor device as the interrogation signalspreads out and bounces multiple times. A detected reflection may not beactually due to a reflection off contents of the container and mayinstead be due to an artifact of noise or detection error. In someembodiments, if multiple reflections are detected (e.g., amplitude ofthe received signal or envelope of the received signal crosses acorresponding threshold value multiple times in a pattern that indicatesmultiple detected reflections), it is determined that the measure offill level is unable to be successfully determined only using theinitial analysis.

If at 1110 it is determined that the initial analysis did not result ina successful determination of the measure of fill level, at 1112, adigital analysis of the processed received signal is performed in anattempt to determine a measure of fill level. In some embodiments, thedigital analysis in 1112 is performed regardless of whether the initialanalysis resulted in a determination of the measure of fill level. Inalternative embodiments, the initial analysis is not performed and aresult of the digital analysis is utilized to determine the measure offill level.

The processed received signal is analyzed to identify one or more peaksin the processed received signal. An example of the processed receivedsignal is a digital signal that has been detected by performing ananalog to digital conversion of the envelope signal of the receivedanalog signal. The processed received signal has been stored inmemory/storage of the sensor device for digital analysis. The peaks inthe processed received signal likely correspond to detected reflectionsof the interrogation signal within the container and one of theidentified one or more peaks is indicative of the fill level of thecontainer. The total amount/length of the processed received signalanalyzed and eligible for peak detection may be dynamically limitedbased on a physical length/configuration of an associated container. Forexample, because the amount of distance a signal travels directly downinside the container and back is limited by the interior size length ofthe container, the total length of the processed received signalanalyzed for peak detection is limited to correspond to the amount ofround trip signal travel of time for the length inside the containerplus a buffer amount. In some embodiments, identifying the peaks in theprocessed received signal includes identifying instances in theprocessed received signal (e.g., within limited signal length based on aphysical length of an associated container) when the amplitude of theprocessed received signal is above a peak detection threshold. In someembodiments, the peak threshold is dynamically determined based on oneor more parameters (e.g., minimum amplitude value, maximum amplitudevalue, average amplitude value, etc.) of the processed received signal.For example, the peak detection threshold=((minimum amplitudevalue+average amplitude value)/2+maximum amplitude value)/2.

After the amplitude of the processed received signal rises above thepeak detection threshold, the amplitude may stay above the peakdetection threshold for a period of time/number of samples until itfalls below the peak detection threshold. Each different period of thesignal when the amplitude of the processed received signal is sustainedabove the peak detection threshold is identified as a different peak.For example, a next peak is eligible to be detected once the signalamplitude falls below the peak detection threshold. For each of thesepeaks, the length of the period (e.g., amount of time or number ofsamples in the period of the peak), a beginning time value associatedwith when the amplitude increased to cross the peak detection thresholdfor the corresponding peak (e.g., time value corresponding to thebeginning of the peak crossing the peak detection threshold, timeduration from signal transmission to when the signal portioncorresponding to the beginning of the peak was received, etc.), and arate of change of the amplitude of the processed received signal at thebeginning time value of the corresponding peak are determined. If thelength of the period is less than a selected threshold, the peak may bedeemed ineligible to be selected as corresponding to a fill level of thecontainer because a short peak length likely corresponds to noise ratherthan being due to a received signal reflection from contents of thecontainer.

One of the one or more identified and eligible peaks is selected ascorresponding to a fill level of the container. The peak thatcorresponds to the direct reflection of the interrogation signal offcontents of the container directly back to the receiver is desired to beidentified because the signal travel time of this peak corresponds tothe content fill level of the container. In some embodiments, selectingthe selected peak includes identifying the peak associated with thegreatest determined rate of change of the amplitude (e.g., when crossingthe peak detection threshold at the determined beginning time value). Ifthere is a tie among the eligible peaks for the determined rate ofchange, the peak associated with the longest/largest determined lengthof period among the tied peaks is selected. If there is a further tieamong the eligible peaks for the rate of change and the length ofperiod, the first occurring peak (e.g., earliest beginning time value)among the tied peaks is selected. In effect in various embodiments,selecting the selected peak may include determining correspondingenergies associated with each of the peaks and selecting the peak withthe largest energy as the selected peak.

Then, a measure of fill level is determined based on the select peak.For example, the beginning time value associated with the selected peakis utilized in determining the measure of fill level. In someembodiments, a distance value corresponding to the selected peak isdetermined as the measure of fill level. For example, the selected peakcorresponds to when a reflection of the interrogation signal fromcontents of the container reaches the signal receiver and by measuringthe amount of time it took to receive the selected peak corresponding tothe reflection, the distance traveled by the interrogation signal toreach contents of the container (e.g., distance between sensor deviceand liquid surface is half of the total distance traveled by theinterrogation signal) may be determined as the measure of fill level bymultiplying the amount of time by the speed of the signal (e.g., speedof sound) divided by 2 (e.g., plus an adjustment factor value to accountfor the distance between the receiver of the sensor device and the topof the container and/or a transmitter/receiver time delay). Ultimately,the beginning time value and/or signal travel distance associated withthe selected peak can be utilized to determine a volume value of contentremaining in the container.

Although identified instances in the analog signal determined in 1108may ideally correspond with detected peaks in the digital signal becausethey both measure attempt to detect the same reflection instances, thedifference in detection thresholds and/or methods (e.g., instance inanalog signal attempts to detect beginning of a reflection while peaksin digital signal also attempt to detect highest energy point of thereflection) may yield different associated time values. Also, the timevalue detected in the analog signal may be more accurate than the timevalue detected in the digital signal due to the higher resolution of theanalog signal. By using the analog signal to select candidate timevalues corresponding to potential reflections and using the digitalsignal analysis to select one of the candidate time values from theanalog signal (e.g., using analysis that takes into considerationcorresponding total energy associated with each associated reflectionpeak), a more accurate reflected signal travel time and associatedmeasure of fill level may be determined.

In some embodiments, the beginning time value associated with theselected peak is utilized to select a corresponding one of theidentified instances in the analog signal determined in 1108. Forexample, each identified instance specifies a time in the receivedanalog signal when the signal strength meets the detection threshold,and one of these identified instances is identified as corresponding tothe fill level of the container. Selecting one of the identifiedinstances includes determining whether any time value of the identifiedinstances in the analog signal is the same or within a threshold rangeof the beginning time value associated with the selected peak andselecting the identified instance with a time value that is within thethreshold range and closest to the beginning time value of the selectedpeak. The time value of the selected identified instance in the analogsignal is then utilized in determining the measure of fill level ratherthan the beginning time value associated with the selected peak. In someembodiments, a distance value corresponding to this selected identifiedinstance in the analog signal is determined as the measure of filllevel. For example, the time value of the selected identified instancein the analog signal is multiplied by the speed of the signal (e.g.,speed of sound) and divided by 2 (e.g., plus an adjustment factor valueto account for the distance between the receiver of the sensor deviceand the top of the container and/or a transmitter/receiver time delay).Ultimately, the time value and/or signal travel distance associated withthe selected identified instance in the analog signal can be utilized todetermine a volume value of content remaining in the container. If noneof the time values of the identified instances is within the thresholdrange of the beginning time value associated with the selected peak, itis determined that the digital analysis has not resulted in a successfuldetermination of the measure of fill level.

At 1114 it is determined whether the digital analysis resulted in asuccessful determination of the measure of fill level. For example, thedigital analysis does not result in a successful determination of themeasure of fill level if no peaks are identified or a selected peakcannot be identified and if a selected peak has been successfullyidentified, it is determined that the digital analysis has resulted in asuccessful determination of the measure of fill level. In anotherexample, digital analysis does not result in a successful determinationof the measure of fill level if an error is during the digital analysis.In another example, digital analysis does not result in a successfuldetermination if any identified instance in the analog signal thatcorresponds to the selected peak cannot be identified, and the digitalanalysis does result in a successful determination if an identifiedinstance in the analog signal that corresponds to the selected peak hasbeen identified. For example, if none of the time value of theidentified instances in the analog signal is within a threshold range ofthe time values associated with the selected peak, it is determined thatthe digital analysis did not result in a successful determination of themeasure of fill level.

If in 1114 it is determined that the digital analysis did not result ina successful determination of the measure of fill level, at 1116, theprocessed received signal is dynamically modified based on a previouslyreported indication of fill level.

For example, the amount/level of content that is typically removed fromthe container each time content is dispensed from the container isusually within a range from the previous fill level (e.g., amount ofliquid content poured from a spout of the fill level measurement deviceis typically constant for each pour). Based on this assumption, adynamically selected beginning portion of the processed received signalmay be modified to reduce/ignore/mute the selected beginning portion ofthe processed received signal that corresponds to a portion of theprocessed received signal unlikely to include a signal peak of theinterrogation signal reflection corresponding to the fill level of thecontainer. For example, amplitude of a selected beginning portion of thereceived signal processed in 1106 is reduced or set to zero. Thelength/duration of the selected beginning portion is dynamicallydetermined based on the previously reported indication of fill level.For example, the time value associated with the previously reportedindication of fill level (e.g., time value indicating when aninterrogation signal reflection of interest was detected in the receivedsignal of the previously reported indication of fill level) is utilizedas the length/duration of the selected beginning portion. In anotherexample, the time value associated with the previously reportedindication of fill level that is reduced by a buffer percentage or valueis utilized as the length/duration of the selected beginning portion toallow detection of the received signal features of the previouslyreported indication of fill level in case the fill level has notchanged. A decrease in fill level corresponds to a longer interrogationsignal reflection travel distance and time that would be detected in thereceived signal at a time that is after the time corresponding to aprevious higher fill level. Thus in some embodiments, dynamicallymodifying the processed received signal includes determining the timevalue associated with a previously reported indication of fill level,reducing the time value by a buffer amount (e.g., reduced by apredetermined percentage or predetermined length value), and reducing anamplitude of a beginning portion of the processed received signal forthe length of the reduced time value.

At 1118, a digital analysis of the modified processed received signal isperformed in an attempt to determine a measure of fill level. Themodified processed received signal rather than the original processedreceived signal is analyzed to identify one or more peaks in themodified processed received signal. The remaining peaks in the modifiedprocessed received signal likely correspond to detected reflections ofthe interrogation signal within the container and one of the identifiedpeaks is indicative of the fill level of the container. By modifying thereceived signal to remove/reduce a portion of the signal, the number ofdetected peaks is likely reduced as well. In some embodiments,identifying the peaks in the modified processed received signal includesidentifying instances in the modified processed received signal (e.g.,also limited within limited signal length based on a physical length ofan associated container) when the amplitude of the modified processedreceived signal is above a peak detection threshold. In someembodiments, the peak threshold is dynamically determined based on oneor more parameters (e.g., minimum amplitude value, maximum amplitudevalue, average amplitude value, etc.) of the modified processed receivedsignal. For example, the peak detection threshold=((minimum amplitudevalue+average amplitude value)/2+maximum amplitude value)/2.

After the amplitude of the modified processed received signal risesabove the peak detection threshold, the amplitude may stay above thepeak detection threshold for a period of time/number of samples until itfalls below the peak detection threshold. Each different period of thesignal when the amplitude of the modified processed received signal issustained above the peak detection threshold is identified as adifferent peak. For example, a next peak is eligible to be detected oncethe signal amplitude falls below the peak detection threshold. For eachof these peaks, the length of the period (e.g., amount of time or numberof samples in the period of the peak), a beginning time value associatedwith when the amplitude increased to cross the peak detection thresholdfor the corresponding peak (e.g., time value corresponding to thebeginning of the peak crossing the peak detection threshold, timeduration from signal transmission to when the signal portioncorresponding to the beginning of the peak was received, etc.), and arate of change of the amplitude of the modified processed receivedsignal at the beginning time value of the corresponding peak aredetermined. If the length of the period is less than a selectedthreshold, the peak may be deemed ineligible to be selected ascorresponding to a fill level of the container.

Then one of the one or more identified and eligible peaks is selected ascorresponding to a fill level of the container. In some embodiments,selecting the selected peak includes identifying the peak associatedwith the greatest determined rate of change of the amplitude (e.g., whencrossing the peak detection threshold at the determined beginning timevalue). If there is a tie among the eligible peaks for the determinedrate of change, the peak associated with the longest/largest determinedlength of period among the tied peaks is selected. If there is a furthertie among the eligible peaks for the rate of change and the length ofperiod, the first occurring peak (e.g., earliest beginning time value)among the tied peaks is selected. In effect in various embodiments,selecting the selected peak may include determining correspondingenergies associated with each of the peaks and selecting the peak withthe largest energy as the selected peak.

Then, a measure of fill level is determined based on the selected peak.For example, the beginning time value associated with the selected peakis utilized in determining the measure of fill level. In someembodiments, a distance value corresponding to the selected peak isdetermined as the measure of fill level. For example, by measuring theamount of time it took to receive the selected peak, the distancetraveled by the interrogation signal to reach contents of the container(e.g., distance between sensor device and content surface is half of thetotal distance traveled by the interrogation signal) may be determinedas the measure of fill level (e.g., by multiplying the amount of time bythe speed of the signal divided by 2 plus adjustment factor, ifapplicable). Ultimately, the beginning time value and/or signal traveldistance associated with the selected peak can be utilized to determinea volume value of content remaining in the container and/or dispensedfrom the container.

In some embodiments, the beginning time value associated with theselected peak is utilized to select a corresponding one of theidentified instances in the analog signal determined in 1108. Forexample, each identified instance specifies a time in the receivedanalog signal when the signal strength meets the detection threshold oneof these identified instances is identified as corresponding to the filllevel of the container. Selecting one of the identified instancesincludes determining whether any time value of the identified instancesin the analog signal is the same or within a threshold range of thebeginning time value associated with the selected peak and selecting theidentified instance with a time value that is within the threshold rangeand closest to the beginning time value of the selected peak. The timevalue of the selected identified instance in the analog signal is thenutilized in determining the measure of fill level rather than thebeginning time value associated with the selected peak. In someembodiments, a distance value corresponding to this selected identifiedinstance in the analog signal is determined as the measure of filllevel. For example, the time value of the selected identified instancein the analog signal is multiplied by the speed of the signal (e.g.,speed of sound) and divided by 2 (e.g., plus an adjustment factor valueto account for the distance between the receiver of the sensor deviceand the top of the container and/or a transmitter/receiver time delay).Ultimately, the time value and/or signal travel distance associated withthe selected identified instance in the analog signal can be utilized todetermine a volume value of content remaining in the container. If noneof the time values of the identified instances is within the thresholdrange of the beginning time value associated with the selected peak, itis determined that the digital analysis has not resulted in a successfuldetermination of the measure of fill level.

At 1120 it is determined whether the digital analysis performed usingthe modified processed received signal resulted in a successfuldetermination of the measure of fill level. For example, the digitalanalysis does not result in a successful determination of the measure offill level if no peaks are identified or a selected peak cannot beidentified in the modified processed received signal and if a selectedpeak has been successfully identified, it is determined that the digitalanalysis has resulted in a successful determination of the measure offill level. In another example, digital analysis does not result in asuccessful determination of the measure of fill level if an error isduring the digital analysis. In another example, digital analysis doesnot result in a successful determination if any identified instance inthe analog signal that corresponds to the selected peak cannot beidentified, and the digital analysis does result in a successfuldetermination if an identified instance in the analog signal thatcorresponds to the selected peak has been identified. For example, ifnone of the time values of the identified instances in the analog signalis within a threshold range of the time value associated with theselected peak, it is determined that the digital analysis did not resultin a successful determination of the measure of fill level.

If in 1120 it is determined that the digital analysis did not resultedin a successful determination of the measure of fill level, at 1122 itis determined whether to send a new interrogation signal. For example,the strength of the received signal corresponding to the reflection offcontents of the container may be too weak to be reliably utilized todetermine the measure of fill level. This may be due toliquid/condensation beading/bubbling/blocking the transmitter andpreventing the full strength transmission of the interrogation signal.In order to penetrate, disturb, and/or dislodge the liquid/condensationblocking/beading/bubbling on the transmitter, a stronger interrogationsignal may be utilized in the new interrogation signal to be emitted bythe transmitter. The stronger interrogation signal may includeincrease(s) in signal length, number of pulses, and/or signal amplitude.

In some embodiments, determining whether to send a new interrogationsignal includes determining the number of times an new interrogationsignal has been sent in the attempt to determine the measure of filllevel in an execution instance of the process of FIG. 11. This allowsthe interrogation signals to be tried a limited number of times (e.g.,limit of one additional time for the new interrogation signal inaddition to the initial interrogation signal) before concluding that themeasure of fill level is unable to be determined. For example, if thenumber of times interrogation signals have been previously sent for theexecution instance of the process of FIG. 11 exceeds a predeterminedthreshold number, it is determined to not send a new interrogationsignal, and if the number of times interrogation signals have beenpreviously sent for the execution instance of the process of FIG. 11does not exceed the predetermined threshold number, it is determined tosend a new interrogation signal.

In some embodiments, determining whether to send a new interrogationsignal includes determining whether an amplitude (e.g., highestamplitude, average amplitude, amplitude of an identified peak, etc.) ofthe received signal (e.g., original received signal, processed receivedsignal, modified processed received signal, etc.) is less than athreshold amplitude, and if the amplitude of the received signal is lessthan the threshold amplitude, it is determined to send a newinterrogation signal and if the amplitude of the received signal isgreater than or equal to the threshold amplitude, it is determined tonot send a new interrogation signal. This may allow identification of areceived signal that is too weak to be reliably utilized to determinethe measure of fill level and dynamically send a new interrogationsignal in an attempt to receive a better received signal.

If at 1122 it is determined to send a new interrogation signal, at 1124,the new interrogation signal to be sent is selected. Then the processproceeds to 1104 where the new interrogation signal selected as theselected interrogation signal is transmitted and a signal received inresponse is analyzed in subsequent steps. In some embodiments, apredetermined and/or dynamic amount of time is passed/waited prior toproceeding to 1104. This wait time may allow any movement of contents ofthe container to settle prior to performing another measurement attempt.

In some embodiments, the new interrogation signal includes a strongertransmission/signal component that is to be transmitted in order todisturb and dislodge the liquid/condensation blocking/beading/bubblingon the transmitter. The amplitude, length and number of multiple pulsesof the clearing/dislodging transmission/signal are selected to be greatenough in an attempt to dislodge the liquid/condensation from blockingfuture interrogation signals of the transmitter. In some embodiments, aclearing/dislodging transmission/signal component may function todislodge the liquid from obstructing transmitted and a separate signalcomponent of the new interrogation signal that is subsequentlytransmitted (e.g., transmitted after a pause/delay to allow theclearing/dislodging signal component to dissipate) is to be utilized indetecting its reflection for fill level measurement. In someembodiments, instead of or in addition to the clearing/dislodgingtransmission/signal, the strength/energy/amplitude of a portion of thenew interrogation signal that is be reflected and detected for filllevel determination is increased from an amplitude of the initialinterrogation signal selected in 1102 to assist in the removal and/ortransmission through the liquid/condensation affecting the transmitter.

In some embodiments, the new interrogation signal is anothertransmission instance with the same signal parameters as at least aportion of the selected interrogation signal in 1104. In someembodiments, at least a portion of the new interrogation signal includesone or more parameters of the interrogation signal selected in 1102. Forexample, a portion of the interrogation signal selected in 1102 may beincluded in a new interrogation signal or one or more signal parametersof the interrogation signal selected in 1102 are utilized as thestarting basis in selecting the new interrogation signal. In someembodiments, the new interrogation signal has one or more differentsignal parameters as compared to the selected interrogation signal in1104. For example, the number of signal pulses, the length of the signalpulses, a frequency of the signal pulses, a signal content of the signalpulses, a strength/magnitude of the signal pulses, a profile of thesignal pulses, a waveform of a signal pulse, a length of null signalbetween the signal pulses, a length/width of a signal component, a pulsewidth, an amplitude/intensity of the signal component, a modulation ofthe signal component (e.g., pulse-width modulation to be utilized),and/or a duty cycle of the signal component, etc. may be different.Variations in the interrogation signals may allow different reflectionpatterns of the interrogation signals to be tested to ensure consistencyof the measurements of fill level despite the variance in theinterrogation signal.

If in 1122 it is determined to not send a new interrogation signal, at1124, an indication is provided that a reliable measure of fill levelcannot be determined. For example, this indication may be utilized toindicate an error to a user. In some embodiments, the indication is usedin making a determination to perform another fill level measurement at alater time. In some embodiments, if an error is detected by the filllevel sensor device during any of the steps in the process of FIG. 11,the process ends and an indication of the error is provided. Forexample, detected errors such as detected movement during fill levelmeasurement, improper fill level sensor positioning/latch to container,blocked receiver/sensor (e.g., liquid beaded on sensor or receiver andis hindering the detection), etc. are indicated and the process stops toallow a user to correct the error.

If in 1110, 1114, or 1120, the measure of fill level has beensuccessfully determined, at 1126, the determined measure of fill levelis provided. For example, the determined measure of fill level isprovided for use in 1002 or 1004 of FIG. 10.

FIG. 12 is a flowchart illustrating an embodiment of a process forperforming an action based on a determined content amount. The processof FIG. 12 may be at least in part implemented on interface device 406and/or server 410 of FIG. 4.

At 1202, a content fill identifier associated with an amount/level ofcontent detected within a container is received. In some embodiments,the received content fill identifier is the current fill level providedin 1012 of FIG. 10 and/or 1126 in FIG. 11 (e.g., determined in 1108,1112, or 1118 of FIG. 11). In some embodiments, the content fillidentifier has been received along with an associated sensor deviceidentifier of a specific sensor device. The content fill identifier maybe utilized to track change in content amount/level of a specificcontainer measured by a sensor device.

In some embodiments, the content fill identifier has been received via alocal wireless communication protocol (e.g., Wifi, BLUETOOTH Low Energy,etc.). In some embodiments, the content fill identifier is received byinterface device 406 of FIG. 4. In some embodiments, the content fillidentifier is received by server 410 via network 408 of FIG. 4. Invarious embodiments, the received content fill identifier is one of aplurality of content fill identifiers received from the same sensordevice over time for the same container and/or from different sensordevices for different containers. In some embodiments, the content fillidentifier includes a time value associated with the amount of time ittook to receive the reflected interrogation signal and/or a distancevalue associated with the distance traveled by the received reflectedinterrogation signal. Other data received along with the content fillidentifier includes one or more time values (e.g., timestamp of when thecontent fill measurement was performed, when the content fillmeasurement was sent, when the content fill measurement was received,etc.), a detected temperature value (e.g., temperature measured by thesensor device), a previous measured content fill identifier (e.g., canbe used in case previous measurement was not received and to verify thatprevious measurement was received), an identifier of the sensor devicethat provided the content fill identifier (e.g., media access controlidentifier assigned to sensor device), a power level indicator (e.g.,indicating amount of battery power left in sensor device), and/or astatus flag/indicator associated with the provided content fillidentifier (e.g., indicating any error, message, or status associatedwith the provided content fill identifier).

At 1204, a fill value corresponding to the received content fillidentifier is determined. For example, a percentage value and/or avolume amount value corresponding to the received content fillidentifier is determined. In some embodiments, using an identifier of asensor device associated with the received content fill identifier, acontainer type associated with the received content fill identifier isidentified. For example, the identification of a specific container typereceived in 510 of FIG. 5 has been previously associated with the sensordevice identifier and this identification of the container type isretrieved using the sensor device identifier. In some embodiments, thesensor device identifier and the received content level identifier areprovided to server 410 by interface device 406 and server 410 determinesthe corresponding fill amount/level. In some embodiments, the receivedcontent fill identifier identifies the associated container type of thesensor device that transmitted the received content fill identifier.

In some embodiments, a specific container type is associated with aspecific table/database/data structure/formula that maps an identifierof the received content fill identifier to an amount/level of contentincluded in a container of the associated container type. For example,the fill percentage and/or volume value that corresponds to the receivedcontent fill identifier is determined. In some embodiments, the receivedcontent fill identifier is modified before being utilized to obtain theamount/level value using the specific table/database/datastructure/formula for the specific container type.

At 1206, an action associated with the content fill identifier isperformed. For example, the determined fill value is stored. Forexample, server 410 of FIG. 4 tracks content remaining within eachcontainer being tracked using one or more sensor devices. In someembodiments, performing the action includes performing inventorymanagement. For example, an inventory of a liquor beverage remaining inan opened bottle as well as new bottles stocked on hand are tracked toprovide reporting of consumption amount, cost of goods sold, consumptionpattern, inventory forecasting, etc. In some embodiments, the determinedfill value is recorded. For example, the fill value is recorded in adata structure (e.g., database) that tracks current and historical filllevels of the container of the determined fill value. Recording thedetermined fill value may include tracking a history of a dispensedamount of content of the container (e.g., previous fill level minuscurrent fill level) and recording each content dispense event withassociated amount and time.

In some embodiments, performing the action includes providing an alertwhen it is detected that inventory of the content is low. For example, amobile application alert on an interface device is provided when theamount/level of content reaches below a threshold value for a singlecontainer and/or an inventory across all inventory on hand of thecontent. In another example, the alert is provided on the sensor device(e.g., flashing light). In some embodiments, the alert is only providedif the amount/level of content reaches below a threshold value. Thethreshold value may be dynamically determined based on a historicaldepletion pattern of the content. In some embodiments, an interfacedevice application and/or a webpage is utilized to display and manageinventory of content.

In some embodiments, a database tracks remaining content in eachcontainer measured by a sensor device, and for each tracked contentstores one or more of the following: sensor device identifier, type ofliquid, brand of product, UPC, bar code identifier, quantity remaining,quantity utilized over a time period (e.g., minute/day/week/month/year,etc.), new product container/bottle on hand, price, distributor, dateand time of purchase, servings per use, time of servings consumed,location, expiration, chemical composition, odor, color, temperature,humidity, ingredients of the content, and various content compositioninformation (e.g., sulfites, ethyl, etc.). This may result in trackingmillions of sensor devices and provided measurement data at any givenpoint in time. In some embodiments, once sufficient fill values arecollected over time, performing the action includes determining arecommended time to reorder, a rate of consumption, an average amountconsumed per pour/usage, etc. In some embodiments, a user is able toestablish and specify one or more inventory thresholds based on productcategory, brand, type of beverage, cost, and/or recipes. For example,when the inventory of a product falls below a threshold, a notificationmay be provided in real-time. Consumption and/or inventory data may betracked per each individual user/consumer, establishment, business,distributor, account, brand, and/or geographical region.

In some embodiments, performing the action includes determining whetherthe latest determined fill value is larger than a previously determinedfill value detected using the same sensor device. For example, it isassumed that containers are not refilled with contents and when contentsof a container has been entirely consumed, a user is to replace theempty container with a new full container of the same container type andtransfer the sensor device from the empty container to the new fullcontainer. The use of a new product container is automaticallydetermined and tracked by detecting whether the latest determined fillvalue is larger than a previously determined fill value. In someembodiments, if a user desires to utilize a different container typewith a sensor device that has been already associated with an existingcontainer type, the user is to reconfigure the sensor device for the newcontainer type.

In some embodiments, performing the action includes obtaining Point ofSale data of items (e.g., mixed drinks, shots, glasses, etc.) sold andcorrelating the POS data with tracked content inventory depletion. Thismay offer a view into which types of beverages are in demand, howbeverages are consumed, and pairing between different products (e.g.,food pairing). Based on this information, a user entity profile may bedeveloped to enable insights into past performance and futureforecasting of the user entity's sales metrics. In some embodiments, byanalyzing consumption patterns across user entities, geographicalregional analysis may be performed to analyze product trends. Thisinformation may be utilized to provide recommendations on items to offerfor sale based on seasonality, real-time consumption data, and trendsfor a particular geographical area as well as across a larger region.

The combination of the POS data and the types and quantities ofbeverages sold, a view into which types of beverages are in demand, howis it consumed, and paired with other products (e.g., food) offered canbe analyzed and reported. Based on this information a “Profile” can bedeveloped for a user which offers insights into how the user business isoperating in terms of beverage consumption, ordering, and future demand.Based on the analysis of various beverage consumption patterns acrossthe country, regional analysis of beverage consumption can be offered.Such data could then be offered to various establishments based on thegeography to help them make informed choices on the beverages to beoffered (e.g., which are in demand), which helps them maximize theirrevenue. In some embodiments, one or more the following functionalitiesare provided:

ability to track the beverage consumption by content, brand, and variouscategorization per period (e.g., minute/day/week/month).

ability to associate the sales of various types of beverages paired withthe food by connecting to the POS in real-time.

ability to build a “Profile” of a bar by combining the consumptionpattern with the POS data.

ability to aggregate beverage consumption patterns across variousgeographies.

ability to make recommendations about possible ways to maximize revenueby offering a certain type of beverage or recipe based on seasonality,consumption in real-time, and geographical trends.

In some embodiments, a recipe (e.g., mixed drink recipe) is recommendedbased on inventory availability of ingredients (e.g., determinedamount/level of content), season, consumer profile, holidays, socialrecommendations, etc. For example, a recipe recommendation servicedetects the availability of ingredient beverages in real-time, analyzesapplicable seasonal/time-based demand profiles of recipes, andsuggestions from consumers to recommend the best possible drink recipesto offer. In some embodiments, based on current recipes offered by auser entity and/or new recipes to be offered by the user entity,inventory forecasting is adjusted to provide a recommendation ofadditional quantities of products/containers to order from one or moredistributors. For example, when a new recipe is added, the missingingredients and/or low inventory ingredients are automatically orderedfrom the most appropriate distributors (e.g., distributors/merchantsselected based on price) in quantities that have been forecasted basedon detected product content depletion patterns of the user entity aswell as for other user entities (e.g., similar user entities that havealready offered the new recipe).

In some embodiments, recommended drink recipes are based on variousfactors: availability of beverages, season, ethnicity, holidays, socialrecommendations etc. For example, the recipe recommendation serviceanalyzes the availability of beverages in real-time, checks the seasons,considers suggestions from friends, and will recommend the bar the bestpossible drink recipes to offer. Alongside the recommendations,notifications for ordering the missing beverage/drink ingredients arealso sent to the bar (e.g., so it's delivered on time for serving asspecified by the user).

In some embodiments, a recipe for a prepared meal may be provided basedon various factors such as: availability of food and beverages, season,age, dietary requirements, ethnicity, holidays, social recommendationsetc. In some embodiments, a recipe recommendation service analyzesavailable quantity of food and beverages in real time, checks theseasons, considers suggestions from friends, etc. and will recommend tothe user recommended recipes. Alongside the recipe recommendations,notifications for ordering missing food and beverages may be also sentto the user.

In some embodiments, performing the action includes assisting inordering additional quantities of the content being tracked. Forexample, the consumption amount and pattern of the content and amount offull product containers on hand are analyzed to determine how manyadditional containers of the content should be ordered to replenish thestock inventory of the container. In some embodiments, the order foradditional product containers may be automatically provided to apreferred or preset distributor/merchant/sales representative of theproduct container to automatically place an order for the content. Forexample, a user is provided an option to reorder a product from adistributor by allowing the user to automatically send inventory reportsperiodically to the distributor. In some embodiments, a notification toorder additional quantities of a product/content is provided to a userand the user may provide an associated confirmation to automaticallyplace an order for the recommended additional quantities of theproduct/content from a recommended/preset distributor. Orderconfiguration such as distributor preference, payment information,preferred time of delivery, etc. may be stored and utilized whenautomatically placing an order. This may allow “one-tap” reorder, whereonce the reorder notification is tapped on a user interface, series ofthese services are initiated in the background and the desired productis delivered on time at the preferred location without any furtherreordering action from the user.

In some embodiments, a mobile application is utilized to provide queriesfor information related to the consumer. The application may thendisplay the food availability, various notifications such as reordering,health improvements, recipe recommendations, and food persona (e.g.,nutrient analytics) of the consumer. In various embodiments, the mobileapplication is utilized to provide one tap food reordering that helpsusers get the food delivered to their preferred location and preferredtime without any further action. In some embodiments, the mobileapplication provides access to a delivery services marketplace thatoffers the user a choice to choose from a host of delivery services.When a user gets a notification to re-order a certain food item, theuser may tap on the mobile device notification to confirm the re-orderand the item would be automatically delivered to their preferredphysical address from their preferred source without any further actionor steps from the consumer. When the user downloads the mobileapplication or subscribes to the food analysis and tracking services,user preferences on delivery address, payments, and preferred time ofdelivery may be received and stored. Various delivery service options(e.g., Amazon Fresh, Google Shopping Express, Instacart, other foodmarketplaces, local farmers, etc.) may be aggregated. A consumer'spreference for the delivery service may be stored alongside payment,delivery location, and delivery time preferences. In some embodiments,once the reorder notification is indicated, a one or more of servicesare initiated in the background and the food is delivered at the timeand location as specified without any further action from the consumer.

In some embodiments, a product marketplace with variousdistributor/merchant options for products is accessible via a device(e.g., user device 412 and/or interface device 406 of FIG. 4). In someembodiments, a device/server is able to locate a distributor's deliverytruck or service that is nearby and automatically order/request deliveryof one or more products/containers that are preferred to be restockedimmediately. For example, when it is detected that additional quantityof a product is required prior to a normal product ordering/deliveryschedule, immediate delivery from a nearby source is automaticallyrequested. A user may be provided a notification prior toordering/delivery to obtain authorization from the user.

In some embodiments, an analysis system tracks food content stocked by auser. In some embodiments, a mobile application tracks the currentlocation of the user using the GPS locations provided by a mobile device(e.g., smartphone, tablet, wearable computer, etc.). The information ofwhether a certain food item is running low or about to expire and thecurrent location of a user device are utilized to offer recommendationsto pick those food and beverages when the user location is nearby amerchant that carries the food and beverage. In some embodiments, themobile application locates a user's presence in or near a store anddetects that the user is running low on a specific food item andnotifies the user to pick up the food item while at the store.

In some embodiments, performing the action includes providing anutritional recommendation. For example, an analysis system offersnutritional facts and recommendations associated with each food itembeing tracked using a sensor device. This may be provided using a UPCand nutritional facts database or an existing database with similarinformation. Using such UPC and nutrition database, each consumer's foodconsumption pattern may be summarized by tracking various nutritionalinformation over a specified time period (e.g., 500 grams of sugar perweek, 300 grams of proteins per month, 20 grams of trans fat, etc.).Based on the quantitative profiling of food consumption, a “foodpersona” may be determined. This analysis may be provided to consumersto allow them to make informed choices around consuming certain foodsand beverages. The analysis may be utilized to ascertain healthynutrient levels and a user may be notified of over consumption ordeficiency of a certain nutrient for optimal health.

Consumers may integrate and connect the aggregated data collected fromwearable devices such as FitBit, Jawbone, etc. to the analysis system.Combined with the fitness data from various wearable devices, theanalysis system may also suggest which nutrients/foods and beveragesmight be a cause for degradation or improvement of health. The analysissystem may offer a mechanism for consumers to provide allergy and otherailment information. The analysis system may then check various food andbeverages being ordered and consumed that could result in allergy andmedical issues and warn the user of the possible harm or potentialupside.

In some embodiments, a user's social graph is obtained from socialnetworks such as Facebook (upon obtaining permission from the user) andassociated with the food persona built by the analysis system. Based onfood persona which offers insights into the consumer interests andconsumption of various foods, the analysis system may utilize connectedfriends of the network to identify food consumption recommendations.Based on the food persona, the analysis system may mine for similarpersonas and recommend beneficial food and beverages, determinesuggested inventory (e.g., shopping lists), suggest consumptionpatterns, and suggest recipes. By connecting users based on foodpersona, a graph of users based on food persona called “food graph” maybe determined. Such a network of consumers based on food persona mayform a community to allow discussion of various health benefits.Farmers, food brands, and chefs etc. may then recommend food andbeverages that match certain food persona. Sensor devices can be used totrack food consumption patterns and habits to compute nutritional intakeper time period (e.g., minute/day/week/month). Using this information, aunique “food persona” can be developed for each user, identifyingconsumed food and their nutritional impact. The “food persona” ofvarious users can be connected together to form a “food graph.” Certainfood and beverages, recipes, and nutritional education from brands,farmers, chefs, and educators can be recommended/provided based on the“food persona” of a user. Health data from various other fitness devicesfor a given consumer can also be aggregated and integrated (e.g., usefitness tracker data for analysis with the food intake data collectedfrom the devices such as the fill level sensor devices and the receiptscanner to make recommendations on various types of nutrients and foodintake). A user can provide information regarding allergies and specialneeds related to food and this information can be analyzed with the foodintake data collected from the content fill sensor device and a receiptscanner and notify/warn users about possible issues with certain foodsthey have purchased, ordered, or may order.

FIG. 13 is a flowchart illustrating an embodiment of a process forperforming inventory management and reporting. The process of FIG. 13may be at least in part implemented on interface device 406 and/orserver 410 of FIG. 4.

At 1302, content fill level change events (e.g., content dispenseevents) of one or more content items are tracked. For example, when(e.g., time value) and amount of liquid poured for each pour event froma bottle is tracked. In some embodiments, using a content fill sensordevice 100, 200, 300, 350, and/or 360 of FIGS. 1-3D, a measurement ofcurrent fill level is measured after each time content is dispensed fromthe container. For example, using at least portions of the processes ofFIGS. 9-11, content fill levels of containers are tracked and using atleast a portion of the process of FIG. 12, measurements of dispensedcontent for the one or more content items are recorded. By tracking thedifference between the current fill levels, a history of amounts ofcontents dispensed from or added to containers each time content isdispensed/refilled is determined and recorded. Thus when, what, and howmuch content level is changed for each content item being tracked can betracked and stored as a list of content fill level change event entries.The content fill level change event entries can be aggregated per eachindividual user/consumer, establishment, business, distributor, account,brand, and/or geographical region.

At 1304, the content fill level change events are associated tocorresponding transactions. For example, point of sale (POS) transactioninformation is correlated with the content fill level change events.This may allow identification of any of the content fill level changeevents that are unable to be matched to a correlating POS transaction,allowing identification of any unauthorized content fill level changeevent. The correlation may be performed by identifying an item sold in atransaction, determining type and amount of component ingredient(s) ofthe sold item, and matching the component ingredient(s) to one or morecorresponding entries in the content fill level change events based atleast in part on matching associated time values.

At 1306, inventory management and reporting is performed. For example,bars and restaurants sell wine, beer, and craft cocktails. All drinkshave recipes and especially craft cocktails have recipes where severalbrands of spirits and ingredients are used to make a specific drink. Atthe end of the business day one can use the data of all sales andcompute the total quantity of what was poured out by the bottle, brandand aggregate. Typically there is no way to confirm if the aggregateamount of liquor dispensed matches the total amount sold. The totalactual amount of product utilized/poured to make sold drink productscould be different from theoretical amounts that were supposed to beutilized to make sold drink products due to various reasons. There couldhave been over pours or under pours compared to the recipe, actualdrinks made might not have been recorded as a sale, and another brand ofsimilar type of liquor could have been substituted for what was requiredby the recipe, etc.

Results of the correlation between the content fill level change eventsand the corresponding transactions, information, reports, and/or alertson amounts of content dispensed and/or amounts of content over/underdispensed from the theoretical amount of content that should have beendispensed (e.g., over pour, under pour, etc.) aggregated per specificcontent item, transaction, product (e.g., drink product including manycomponent ingredients), fill level change event, container, brand, type,category, entity location, geographical region, time period, employee(e.g., bartender), and/or content consumer are provided along withcalculated performance scores or metric values. Thus not only does theinventory management system automatically track fill level of containersand amount of inventory of remaining full containers, each content filllevel change event (e.g., indicating content, time of fill level changeevent and amount) is tracked along with statistics on fill change ascompared to the amount of sold content. This may also allow a user tonot only track sales popularity and patterns across various metrics(e.g., by item, transaction, fill level change event, product,container, brand, type, category, entity location, geographical region,time period, employee, content consumer, etc.) but also identify andinvestigate unexpected content losses (e.g., review a report of contentfill level change events not attributed to a corresponding sale).

FIGS. 14A-14C are example user interfaces illustrating dispensed contentreports. In some embodiments, the example user interfaces are providedin 1306 of FIG. 13. In some embodiments, the example user interfaces areprovided using inventory, sales, and content dispense event data trackedby server 410 of FIG. 4.

Interface 1402 of FIG. 14A lists items of a specific category (e.g.,gin). Each item lists for a specific time period (e.g., a day) anassociated aggregated amount of content sold, an aggregated amount ofcontent dispensed, a difference between the sold content vs. thedispensed content, and an associated aggregated amount of complimentarycontent provided for the specific item. Additionally, a performancemetric (shown as Nectar Rating % calculated by dividing amount sold byamount dispensed) on dispensed vs. sold is also provided for each listeditem.

Interface 1404 of FIG. 14B shows a circular graphic that displays andgraphs an aggregated amount of content sold, an amount of content fillchange, a difference between the sold content vs. the dispensed content,and an aggregated amount of complimentary content provided across allitems on a specified day. A performance metric (shown as Nectar Rating %calculated by dividing amount sold by amount dispensed) on dispensed vs.sold is also provided for the specified day. Additionally, the item thatexhibited top loss (e.g., lowest sold vs. dispensed ratio), the topselling item, the number of new bottles opened, and the number ofremaining full bottles across all items are indicated.

Interface 1406 of FIG. 14C shows a circular graphic that displays andgraphs an aggregated amount of content sold, an amount of contentdispensed, a difference between the sold content vs. the dispensedcontent, and an aggregated amount of complimentary content provided fora specified item type (Gin) on a specified day. A performance metric(shown as Nectar Rating % calculated by dividing amount sold by amountdispensed) on dispensed vs. sold is also provided for the specified itemtype on the specified day. Additionally, the item that exhibited toploss (e.g., lowest sold vs. dispensed ratio), the top selling item, thenumber of new bottled opened, and the number of remaining full bottlesfor the specified item type are indicated.

FIG. 15 is a flowchart illustrating an embodiment of a process forassociating content fill level change events with correspondingtransactions. The process of FIG. 15 may be at least in part implementedon interface device 406 and/or server 410 of FIG. 4. In someembodiments, at least a portion of the process of FIG. 15 is performedin 1304 of FIG. 13.

At 1502, one or more records of transactions are received. Examples ofthe transactions include a product sale or a food/drink/productconsumption or preparation. In some embodiments, the record of salestransactions of a bar or restaurant is received from a POS system orother sales data system. In some embodiments, the record of transactionsis received from a user. For example, using an application of a mobiledevice, a user inputs a prepared food consumed by the user. Each recordof transaction may identify one or more of the following: a product(e.g., identifier of a drink sold), a product type (e.g., mixed drink),a quantity of the product (e.g., drink size and number of drinks), atime of the transaction (e.g., date and time of sale), a location (e.g.,location of sale), a price (e.g., price charged, tip amount, etc.), aseller (e.g., identifier of bartender, cashier, etc.), and otherinformation associated with the transaction. In some embodiments,records of transactions are accumulated over a period of time andperiodically received together for analysis (e.g., records for an entireday are received together after close of business each day). In someembodiments, one or more records of transactions are receiveddynamically as each transaction or a group of transactions is completed.

At 1504, eligible match candidates between fill level change events andthe transactions are identified. For example, for each of thetransactions, one or more candidate content fill level change events, ifany, corresponding to the transaction are identified. The candidatecontent fill level change events are identified based on content fillmeasurements determined using the content fill sensor devices (e.g.,content fill sensor device 100, 200, 300, 350 and/or 360 of FIGS. 1-3D).For example, a content fill sensor device provides a content fillidentifier indicating a current amount/level of content detected withina container (e.g., provided periodically and/or dynamically whentriggered by an accelerometer or other sensor) and a history of thecontent fill identifiers are stored and tracked. Each fill identifier isassociated with a time value associated with the fill level measurementof the fill identifier (e.g., time stamp of when the associatedmeasurement was performed/determined/triggered, time stamp of when thecontent fill indicator was received, etc.). Given a history of contentfill levels, content fill level change events may be determined bycalculating for each content fill level a difference from a previouscontent fill level. If the difference between a new fill levelmeasurement and a previous fill level measurement is greater than athreshold value, the difference is identified as the amount of contentfill change of a new content fill level change event and associated withthe time value of the new fill level measurement. In another example,for each of the content fill level change events, one or more candidatetransactions, if any, corresponding to the content fill level changeevent are identified.

Because each transaction is associated with a transaction time value(e.g., indicating time of sale), an assumption is made that anyassociated content fill change (e.g., dispensing of content to make theproduct of the transaction) occurs around the time of the transaction.Thus for each transaction, one or more candidate content fill levelchange events, if any, corresponding to the transaction can beidentified by identifying any content fill level change event with anassociated time value that is within a threshold time range of thetransaction time value. An example of the threshold time range is 25minutes, but other threshold time range values may be utilized in otherembodiments. In another example, for each candidate content fill levelchange event, one or more candidate transactions, if any, correspondingto the candidate content fill level change event can be identified byidentifying any transaction with an associated time value that is withina threshold time range of the candidate content fill level change eventtime value.

At 1506, each component ingredient item of the transactions is attemptedto be matched to a selected content fill level change event among thecandidate content fill level change events of the transaction, ifapplicable.

Each product/item of the transaction is made using one or more componentingredient items and these component items are identified using storedinformation about the product/item. For example, a drink product is madeusing specified component ingredient items that are individually trackedusing separate content fill sensor devices. When a transactionidentifies the drink product, any tracked component ingredient itemsspecified to make the drink product are identified along with theassociated quantities using a database that tracks component ingredientitems of products. By identifying the component ingredients and theirrespective specified quantities, fill level change events can be matchedto each of the specified quantities.

In some embodiments, among the candidate content fill level changeevents identified for a transaction in 1504, the content fill levelchange events are sorted/ranked first according to amount of the contentfill change (e.g., from largest pour size to smallest pour size), thenby time difference from the transaction time (e.g., for content fillchanges of equal size, sort according to closest time to furthest timeaway from the transaction time).

When performing the matching, the specified component ingredient item ofa product of a transaction is attempted to be matched to a candidatecontent fill level change event that is for the same item. For example,the candidate content fill level change events for a transaction arefiltered to identify only the candidate content fill level change eventsthat are for the same corresponding item as the component ingredientitem of the product of the transaction to be matched. Thus, in someembodiments, for each specified/required component ingredient item ofthe transactions, corresponding eligible candidate content fill levelchange event(s), if any, that match the component ingredient item andare within the threshold time range are identified, and one of thecorresponding eligible candidate content fill level change events ismatched to the specified component ingredient item based on a comparisonof the associated quantities, time difference, and/or item match/type.In another embodiment, for each content change event, correspondingeligible required/specified component ingredient item(s) of thetransactions, if any, that match the content item of the change eventand are within the threshold time range are identified, and one of thecorresponding specified/required component ingredient items of atransaction is matched to the content change event based on a comparisonof the associated quantities, time difference, and/or item match/type.

When a match is made between a specified/required component ingredientitem of a transaction and a fill level change event, the componentingredient item of the transaction and the fill level change event aremarked to prevent the fill level change event or the specified/requiredcomponent ingredient item of the transaction from being matched again toa different match. Then the match process is repeated for each contentchange event or specified/required component ingredient item of thetransactions until no more matches can be made. The order in which thecontent change events or specified/required component ingredient itemsof the transactions are traversed to make the match may be based on anumber or eligible matches for the content change event or thespecified/required component ingredient of a transaction. For example,matches are made in order of smallest number of eligible matches tolargest eligible matches (e.g., the content change event orspecified/required component ingredient item of a transaction with thesmallest number of eligible matches is matched first). Among equalnumber of matches, the content change event or specified/requiredcomponent ingredient item associated with the larger quantity is matchedprior to matching ones associated with a smaller quantity.

At 1508, unmatched entries are attempted to be matched using alternativecriteria. In some embodiments, matching using the alternative criteriaincludes attempting to match not only by a specific item, but by acategory of the item. For example, a bartender may have substituted anoriginally specified component ingredient item with a substituteingredient item that belongs to the same item category as the originallyspecified ingredient item (e.g., substitute one brand of gin withanother brand of gin). In some situations, the originally specifiedingredient item of a transaction may have been identified by an itemcategory rather by a specific item (e.g., recipe for a drink requiresany brand belonging to the gin category). To detect such substitutions,for any fill level change event or specified/required componentingredient item of a transaction that has not yet been matched, itscorresponding eligible match is expanded to include any correspondingspecified/required component ingredient item of a transaction or filllevel change event for not only the specific matching item but all itemsbelonging to the same item category (but also still within a thresholdtime range of each other). In some embodiments, matching using thealternative criteria includes increasing the threshold time range toincrease the number of eligible matches. Once the number of eligiblematches is increased, matches can be assigned in a specified order(e.g., as previously described in 1506) until no other matches can beassigned.

At 1510, match(es) are adjusted, if applicable. In some embodiments, asingle fill level change event may be associated with multiplespecified/required component ingredient item instances of one or moretransactions (e.g., single pour across multiple glasses, missed filllevel measurement, measurement error, etc.) and the single fill levelchange event is split among multiple specified/required componentingredient item instances of one or more transactions. For example, whenthe quantity of a fill level change event is detected to be larger thanthe amount of the matched specified/required component ingredient itemof a transaction by a threshold percentage amount, any other unmatchedspecified/required component ingredient item instance (of the samespecific item or item type) of transactions within the threshold time ofthe time of the fill level change event are matched to the same filllevel change event. However, amount quantity of the fill level changeevent attributable to each of the different matched component ingredientitem instances is based on a relative ratio of the specified/requiredquantities to each other (e.g., total amount of the fill level changeevent split based on relative sizes of the specified/required quantitiesof the matched instances). In another example, when a fill level eventis identified as being “weak” due to an associated sensor measurementthat received a “weak” reflected signal or a missed signal is detected,the quantity of a following fill level event is split among matches ofone or more previous fill level events based on relative ratios ofspecified/required quantities of matched component ingredient iteminstances.

In some embodiments, multiple fill level change events may be associatedwith the same specified/required component ingredient item instances ofa transaction (e.g., bottle ran out before completing pour, sensorerror, etc.) and the multiple fill level change events are combined andassigned to a same specified/required component ingredient iteminstance. For example, when a bottle switch is detected and/or anunmatched fill level change event for the same item occurs around a timevalue associated with a match identified as being associated with aquantity difference greater than a threshold value, the unmatched filllevel change event is also matched and assigned to the samespecified/required component ingredient item instance. In anotherexample, a quantity of content item remaining in a container is added tothe quantity associated with a fill content level change event occurringbefore or after the bottle change (e.g., depending which event occurredcloser to the bottle switch).

In some embodiments, a fill level change event may indicate an increasein fill level of a content item of a container (e.g., recalibrationmeasurement performed without accelerometer trigger). This may be due toa previous fill level measurement that made an “overshot” error inmeasurement but later the sensor recovered from the error and indicatedan increase in fill level due to the correction. The amount of thiscorrection is to be distributed across one or more previous fill levelchange events. For example, rather than matching the increasing filllevel change event to a transaction, the amount of the fill level changeis distributed among previous fill level change event(s) to decreasetheir associated quantities. These previous fill level change event(s)may be identified by identifying any previous fill level change event(e.g., within a threshold time range) that has been matched to acomponent ingredient item instance of a lower specified/required amountthan the amount of the level change event. The total amount of decreaseof the increased fill level change event is distributed among theseidentified previous fill level change event(s) based on the relativeratios of specified/required quantities of corresponding matchedcomponent ingredient item instances.

At 1512, analysis is performed based on the identified matches. Forexample, one or more reports, indications, and/or other analyses may beprovided using the result of the matches (e.g., used to provideinformation shown in FIGS. 14A-14C). In some embodiments, any unmatchedfill level change event and/or unmatched specified/required componentingredient item instances are indicated. This may allow a user toinvestigate the cause of the unmatched fill level change event. Theidentified matches are utilized in performing the inventory managementand reporting of 1306 of FIG. 13. For example, ratios betweentheoretical required content quantity vs actual content dispensed aredetermined for various metrics. In various embodiments, events such as ano pour event (e.g., transaction is not matched to fill level changeevent), an over pour event (e.g., amount dispensed is greater than idealamount from recipe), an under pour event (e.g., amount dispensed is lessthan ideal amount from recipe), an off-hour pour event (e.g., contentdispensed outside business hours), an unmatched pour event (e.g.,content dispensed without corresponding recorded transaction), etc. aredetected. In some embodiments, an average ring time (e.g., average timebetween transaction inputs and start or end of corresponding matchedfill level change event(s)) is calculated for one or more users and/orestablishments (e.g., average ring time value calculated for each bartender and/or store). For example, an average of times betweentransaction timestamps and content dispense timestamps of a plurality ofcorrelated transactions matched to corresponding content dispense eventsis calculated. An establishment may want to encourage users (e.g., bartenders) to input transactions to a POS system as soon as possiblebefore or after making corresponding drink products, and for allidentified matches, amounts of time between transaction times andcorresponding matched fill level change event times are averaged fortransactions of each user (e.g., average ring time value for each bartender) and/or across all users of an establishment (e.g., average ringtime value across all users of an establishment location and/or businessentity).

FIG. 16A is a diagram illustrating an embodiment of a front view of basestation 1600. FIG. 16B is a diagram illustrating an embodiment of a sideview of base station 1600. FIG. 16C is a diagram illustrating anembodiment of internal components of base station 1600. In someembodiments, base station 1600 is included in interface device 406 ofFIG. 4. For example, base station 1600 wirelessly receives content levelmeasurement data from sensor devices (e.g., sensor device 100, 200, 300,350, 360, 402 and/or 404 of FIGS. 1-4) and sends the measurement data toa backend server (e.g., server 410 of FIG. 4). For example, base station1600 wirelessly receives content level measurement data from the sensordevices via a BLUETOOTH Low Energy wireless transmission and send themeasurement data to a server via a wireless WiFi connection to theInternet.

As shown in FIGS. 16A-16C, base station 1600 includes housing 1602 withstatus indicator light 1604. Socket prongs 1606 plug directly into anelectrical wall socket to obtain power as well as physically support thedevice on a wall. Housing 1602 houses batteries 1608, battery housing1610, circuit board 1612 and power module 1614. Batteries 1608 providesbackup power in the event power from the wall socket becomesunavailable. In some embodiments, while operating on backup power frombatteries 1608, received data from sensor devices is stored in a storageof base station 1600 for transmission to a server later when power froma wall socket is restored. While plugged into the wall socket, batteries1608 are charged. Power module 1614 conditions and transforms powerreceived from the wall socket for use by base station 1600. Circuitboard 1612 includes wireless communication (e.g., BLUETOOTH and Wi-Ficommunication), processing (e.g., processor) and storage (e.g., solidstate memory) components as well as other electrical components.

An example deployment environment (e.g., restaurant, bar, home, etc.)may contain anywhere from few bottles to hundreds of bottles to trackedfor content level. Some might have up to 500 bottles in one environment.Sensor devices (e.g., sensor device 100, 200, 300, 350, 360, 402 and/or404 of FIGS. 1-4) may measure the remaining volume of liquid in thebottle and transmit them to a server in the network cloud. In someembodiments, the sensor devices transmit the data using BLUETOOTH LowEnergy (i.e., BLE) protocol that minimizes energy use of the sensordevices operating on battery power. In order to send data included inthe BLE packets to the cloud, base station 1600 obtains the BLE packets,extracts the measurement data included in the packets and sends themeasurement data to the server.

However, there are limitations of using BLE. When communicating usingtwo-way communication mode of BLE called the GATT mode, the protocollimits number of concurrent connections a device can manage. It isusually no more than 20 concurrent connections at a time. In someembodiments, the sensor devices could be made to communicate one wayusing another BLE communication mode called the Advertising mode.However, the receiving device with BLE listening capabilities typicallycannot handle more than a dozen of broadcasting devices sending packetsconcurrently, as typically the operating system of the receiving devicesuspends BLE transmission listening in order to handle other jobs. Thiscould result in loosing several BLE transmissions from the broadcastingdevices. Even if the operating system would be modified to listen solelyto the BLE transmissions, the packets would be lost due to collision ofpackets or lost without an ability to store and process them.

In some embodiments, the base station (e.g., interface device 406 ofFIG. 4) may listen to over 300 sensor devices (e.g., sensor device 100,200, 300, 350, 360, 402 and/or 404 of FIGS. 1-4) communicatingsimultaneously with a 99.99% success rate. The base station includesability to communicate in both Wi-Fi 802.11 and BLE communicationprotocols simultaneously.

In some embodiments, potential consumers in a deployment environment(e.g., customers who come in to order at the bar) are offered coupons orpromotional offers by a certain product brand via a mobile applicationor by recognizing the profile of the user though their social network,phone number, unique MAC address of the phone or other personal devices.For example, presence of the potential consumers may be detected bydetection of user mobile devices of the consumers by the base station(e.g., detect Wi-Fi and/or BLUETOOTH communication identifiers of theuser devices). Based on consumers preferences collected over theWeb/Internet, previous purchasing habits, social recommendations, etc.,the potential consumers can be offered targeted promotions. Near FieldCommunication or BLE could be used to recognize each potential consumerthough the detection of devices of potential consumer via the basestation located at the deployment environment.

In an example, purchasing of a drink associated with a promotion may bedetected via data from a Point of Sales System. In some embodiments,specific ingredient products and their quantity utilized to make thepurchased drink may be detected via the sensor devices described herein.For example, besides knowing that a certain drink was purchased, usingthe sensor device, ingredient measurements of the purchased drink can beassociated with the specific brand of the bottle was used to make thedrink. This can be used to measure the effectiveness of a promotion bymeasuring if the drink was really made with the brand for which thepromotion was offered. This information is carried through the basestation in real-time to the service/server. The base station may alsoserve as a way to communicate back with the personal device of the userto directly offer further promotions on detection of consumption/usagevia the sensor devices. For example, the user device directly connectsto the base station via a Wi-Fi or BLUETOOTH connection.

In some embodiments, the base station includes a display that indicateswhich drink was served last, or which sensor device cap should be put onwhich bottle/container, or even act as the front end system providingthe same details of the bar as smart phone app or web app. For example,the base station is utilized to pair a sensor device with a specificcontainer/bottle. In some embodiments, the base station provideswireless Internet connectivity (e.g., acting as wireless router) toclients desiring wireless online services. In a deployment environmentwhere other sensor devices are used to track pantry items and otherhousehold consumables, the base station may act as a hub for variousother activities. The base station in these cases could include adisplay and have other functions such as a receipt scanning, UPCscanning, recognizing voice commands, etc.

FIG. 17 is a flowchart illustrating an embodiment of a process forconfiguring a base station. The process of FIG. 17 may be at least inpart implement on interface device 406 of FIG. 4 and/or base station1600 of FIGS. 16A-16C.

At 1702, configuration mode is entered. For example, when the basestation device (e.g., base station 1600 of FIG. 16A-16C) is plugged intoa power socket by a user, the base station automatically enters theconfiguration mode to initiate configuration of the device.

At 1704, a communication is established with a configuration device. Forexample, the base station enters a BLUETOOTH two-way communicationGeneric Attributes (i.e., GATT) mode with a configuration device (e.g.,user device 412 of FIG. 4). This communication may have been initiatedby the configuration device when the configuration device initiated aBLUETOOTH personal area network connection with the base station device.

At 1706, configuration is received from the configuration device. Forexample, the configuration data specifies network settings (e.g., Wi-Firouter SSID and password, Cellular network configuration, etc.) and useraccount identifier (e.g., user account of inventory management serviceprovided using a cloud network server). A user may have specified thesettings of the configuration using a mobile application running on theconfiguration device.

At 1708, a network connection is established. For example, a Wi-Ficonnection is established with a wireless network router usingcredentials provided via the received configuration to connect the basestation to the Internet. Using the established network connection, thebase station is associated with a user account. For example, the basestation device communicates with a backend server via the networkconnection and provides user account information received in theconfiguration and an identifier of the base station. This pairs the basestation with the user account. The server may also provide additionalconfiguration data to the base station. For example, current timeinformation (e.g., UTC time) is received. Configuration data associatedwith sensor devices associated with the user account may also bereceived from the server. For example, at least a portion of sensordevice configurations utilized in 514 of FIG. 5 and/or 806 of FIG. 8 arereceived from the server. In some embodiments, the base station receivesa token to be used to securely communication establish communicationwith a sensor device. In some embodiments, the base station receivestest data from sensor devices (e.g., used during manufacturing processto verify that sensor devices passes self-performed validation tests).

At 1710, broadcasted advertising data receiving mode is entered. Forexample, the two-way communication GATT mode is exited and the basestation enters advertising packet listening mode. Sensor devices are tosend fill level measurement data in a one-way communication mode usingBLE advertising packets. The base station in the broadcasted advertisingdata receiving mode listens for these advertising packets from thesensor devices. Once an advertising packet is detected and received, thepayload data (e.g., including fill level measurement data) in theadvertising packet is extracted and at least in part sent to a servervia the established network connection. In some embodiments, theadvertising packet is based at least in part on the iBeacon protocol ofApple Inc. For example, the advertising packet of the iBeacon protocolhas been modified to include payload data (e.g., including fill levelmeasurement).

In some embodiments, sensor devices send the measurement data inadvertising mode, a one-way broadcast communication mode that does notguarantee sent data receipt by a recipient. As several hundred sensordevice could potentially transmit at the same time, several advertisingpackets could collide. In some embodiments in order to overcome thecollisions, each sensor device broadcasts the same measurement datamultiple times. The number of times the broadcast is repeated variesbased at least in part a chance of collision with another broadcast ofanother sensor device in the same deployment environment. For example,Chance of Collision=e^-2G, where G is the mean transmission attempt pertime frame. In some embodiments, the same packet data is repeatedlybroadcasted for a certain pre-determined duration of time based at leastin part the Chance of Collision=e^-2G, where G is the mean transmissionattempt per time frame.

In some embodiments, the advertising interval for theoretical maxchance/second may be determined based at least in part on the followingrelationship: Advertising Interval=2*N*advertising time, where N isnumber of sensor devices and advertising time is amount of time requiredto send an advertising packet. For example, the number of times thebroadcast of the same current fill level measurement is based at leastin part on the total number of sensor devices deployed in a deploymentenvironment of the base station (e.g., total number of sensor devicesassociated with a user account and identified to operate simultaneouslyin the same environment). This allows the number of repeated broadcaststo dynamically adjust, as increase in the number of sensor devicesincreases the number of repeated transmissions, while a decrease in thenumber of sensor devices decreases the number of repeated transmissions.In some embodiments, in order for a sensor device to determine/calculatethe repetition number and/or advertising interval, the total number ofsensor devices is specified to the sensor device via a wirelesscommunication (e.g., via a two-way GATT Bluetooth connection with thebase station and/or user device). In some embodiments, rather than usinga dynamically specified total number of sensor devices, a theoreticalmaximum or a constant value is utilized.

FIG. 18 is a flowchart illustrating an embodiment of a process forprocessing data packets at a base station. The process of FIG. 18 may beat least in part implemented on interface device 406 of FIG. 4 and/orbase station 1600 of FIGS. 16A-16C. In some embodiments, at least aportion of the process of FIG. 18 is performed in 1710 of FIG. 17. Theprocess of FIG. 18 may be repeated for each received data packet.

At 1802, a data packet is received. In some embodiments, the data packetis an advertising packet of a personal area network protocol thatincludes an identifier of a sensor device and a sensor measurement data.For example, a sensor device (e.g., sensor device 100, 200, 300, 350,360, 402 and/or 404 of FIGS. 1-4) broadcasts a one-way BLE communicationadvertising packet that has been configured to encode sensor measurementdata in a payload portion of the packet. In some embodiments, thereceived data packet is one of a plurality of repeated broadcasts of thesame payload data content by a sensor device. The number of times thebroadcast is repeated may vary based at least in part a chance ofcollision with another broadcast from another sensor device in the sameenvironment. For example, the number of times the broadcast of the samesensor data and/or same data packet of a particular sensor device isrepeated is based at least in part on the total number of sensor devicesdeployed in a deployment environment of the base station (e.g., totalnumber of sensor devices associated with a user account and/oridentified to operate simultaneously in the same environment).

In some embodiments, the received data packet includes one or more ofthe following data components: a device identifier, a currentmeasurement, a previous measurement (e.g., can be used in case previouspacket was never received), a measurement status, a battery status, atemperature, a time value associated with the current measurement, atime value associated with the previous measurement, a measurementcounter/iteration value(s), a packet number, etc. An example of thedevice identifier is a universally unique identifier (UUID) thatuniquely identifies a particular sensor device (e.g., 6 byte value). Anexample of the current measurement is a current measure of fill level in1014 of FIG. 10 and/or 1126 of FIG. 11 (e.g., 12 bit depth value). Anexample of the previous measurement is an immediately previous measureof fill level in a previous iteration of 1014 of FIG. 10 and/or 1126 ofFIG. 11 (e.g., 12 bit depth value). An example of the battery status isa battery voltage value (e.g., 2 byte value). An example of the timevalue associated with the current measurement is a value associated withwhen the current measurement was performed. An example of the time valueassociated with the previous measurement is a value associated with whenthe previous measurement was performed. An example of the time valueassociated with the previous measurement is a value associated with whenthe previous measurement was performed. An example of the includedmeasurement counter/iteration value is an ordering identifier thatidentifies a relative ordering in the current measurement in a series ofmeasurements (e.g., can be used instead of the time value to identifyordering). An example of the packet number is a counter number and/ortime value that identifies a relative ordering in of the packet in aseries of packets sent by the sensor device (e.g., packet number is samefor repeated broadcasts of the same packet/measurement data and thepacket number is incremented when a new measurement data in a new packetis broadcasted).

The measurement status that may be included in the packet identifies astatus associated with the current measurement. For example, themeasurement status is an 8 bit value, where:

Bit 0:1—Measurement Type

Bit 1 Bit 0 Measurement Type Details 0 0 First Identifies that thecurrent measure- ment occurs immediately after the sensor device hasbeen paired with an user application. 0 1 Accelerometer Identifies thatthe current measure- ment was triggered by the acceler- ometer interrupt1 0 Periodic Identifies that the current measure- ment was triggered bya timer which interrupts every 1 hour, 45 minutes 1 1 DiagnosticUtilized for debug purpose.

Bit 2—Retry Limit Reached

-   -   If set, current measurement has been repeated the maximum number        of times to detect a valid depth.

Bit 3—Not Latched

-   -   If set, a valid depth measurement was not detected. The previous        depth is broadcasted.

Bit 4—Not Settled

-   -   If set, the back-to-back measurements were not within threshold        (e.g., +/−3 mm) of each other.

Bit 5—All Zeros

-   -   If set, the microphone did not detect any reflections from the        interrogation signal.

This is also set when the sensor device is placed on the table at anangle but is stable, in this case it is used to report the cap-offcondition.

Bit 6—Reset

-   -   If set, the current measurement has been performed immediately        after a sensor device reset.

Bit 7—New Bottle

-   -   If set, latching algorithm detected the previous depth was        within a threshold (e.g., +/−25 mm) of the container height, and        the current measurement is within a threshold (e.g., 125 mm)        from the top of the bottle.

At 1804, it is determined whether the currently received data packet isa duplicate of a previously received data packet. Because a sensordevice broadcasts the same measurement data multiple times, the basestation might receive multiple same packets for the same measurementfrom the same sensor device. In some embodiments, it is determinedwhether the currently received data packet is a duplicate of apreviously received data packet by comparing a device identifier and atime value or a counter/iteration value included in the currentlyreceived data packet with corresponding identifiers of a previouslyreceived data packet. For example, if a set of values uniquelyidentifying the instance of measurement data in the currently receiveddata packet matches a corresponding set of values in a previouslyreceived data packet, it is determined that the currently received datapacket is a duplicate of the previously received data packet.

If at 1804, it is determined that the currently received data packet isa duplicate of a previously received data packet, at 1806 the datapacket is dropped.

If at 1804, it is determined that the currently received data packet isnot a duplicate of a previously received data packet, at 1808 thecurrently received data packet is stored in a buffer for processing. Forexample, the data packet is stored in a first-in-first-out buffer queue.In alternative embodiment, all received data packets are stored in thebuffer and duplicate packets are detected and dropped as each packet isobtained from the buffer storage for further processing.

At 1810, the data packet is obtained from the buffer and at least aportion of content of the data packet is processed for reporting. Insome embodiments, when there are packets stored in the buffer, a microcontroller that's handling packets wakes up another micro controllerthat handles wireless communication. This allows packets in the bufferto be processed one at a time dynamically from the buffer as receivedpackets are placed in the buffer and removed one by one from the bufferfor processing. By being dormant unless there is a packet to process,the wireless micro controller is able to conserve power. Processing thecontent of the data packet for reporting may include extractingmeasurement data in the payload of the data packet and associatedidentifiers and other data and formatting/processing/packaging theextracted data for network transmission to a server.

At 1812, the processed content of the data packet is reported. Forexample, measurement data is reported to server 410 of FIG. 4. In someembodiments, content of the data packet is posted to a service APIthrough a RESTful protocol. Before reporting the content, it isdetermined whether a network connection is active. For example, thewireless micro controller, when woken up, checks to ensure that there isan active Wi-Fi connection to a desired server. If there is noconnection, it tries to establish the connection using cachedcredentials. If it fails to connect it continually attempts to connectuntil a connection is established. In case a wireless connection couldnot be established while being woken up to process packets, the wirelesscontroller, besides trying to connect, may continue to process the datapackets. Due to the lack of connection, instead of transmitting thepackets, wireless controller stores the processed data of the packets ina data storage such as EEPROM. In some embodiments, the data storage isdesigned to hold packets up to a week during regular operation of anestablishment (e.g., assuming the deployment environment has up to 500sensor devices).

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

What is claimed is:
 1. A method, comprising: receiving an eventidentifier that identifies an amount of content dispensed from acontainer detected using a sensor device that includes a transmitterconfigured to transmit an interrogation signal and a receiver configuredto receive the interrogation signal that has been reflected within thecontainer; receiving a transaction identifier of a transactionassociated with quantities of different component ingredient items; andautomatically correlating the amount of content dispensed from thecontainer with the transaction at least in part by matching the amountof content dispensed from the container with at least one of thecomponent ingredient items associated with the transaction.
 2. Themethod of claim 1, wherein the transaction identifier is received from apoint of sales system.
 3. The method of claim 1, wherein the transactionidentifier identifies a drink or food consumed by a user.
 4. The methodof claim 1, wherein the transaction identifier identifies one or more ofthe following: a product, a quantity of the product, a time, and aprice.
 5. The method of claim 1, wherein the transaction identifier isreceived together with other transaction identifiers of othertransactions of an entity completed during a time window period.
 6. Themethod of claim 1, wherein automatically correlating the amount ofcontent dispensed from the container with the transaction includesidentifying all eligible match candidate transactions for the eventidentifier.
 7. The method of claim 1, wherein automatically correlatingthe amount of content dispensed from the container with the transactionincludes identifying all eligible match candidate content dispenseevents for the transaction.
 8. The method of claim 1, wherein the eventidentifier is determined based on a history of content fill levels forthe container detected using the sensor device.
 9. The method of claim1, wherein matching the amount of content dispensed from the containerwith at least one of the component ingredient items associated with thetransaction includes determining that a time value associated with theevent identifier is within a threshold time period from a time value ofthe transaction identifier.
 10. The method of claim 9, wherein thethreshold time period was dynamically increased due to a determinationthat a transaction match was not found for the event identifier.
 11. Themethod of claim 1, wherein the different component ingredient items andthe associated quantities are identified by identifying a record in arecipe database for a product of the transaction.
 12. The method ofclaim 1, wherein automatically correlating the amount of contentdispensed from the container with the transaction includes determiningthat a content item of the event identifier matches at least one of thecomponent ingredient items associated with the transaction.
 13. Themethod of claim 1, wherein automatically correlating the amount ofcontent is dispensed from the container with the transaction includesdetermining that a content item of the event identifier does not exactlymatch the at least one of the component ingredient items associated withthe transaction but matches an item category of the at least one of thecomponent ingredient items associated with the transaction.
 14. Themethod of claim 1, further comprising marking the event identifier ashaving been matched to the transaction to prevent the event identifierfrom being matched to a different transaction.
 15. The method of claim1, wherein the amount of content dispensed of the event identifier issplit among a plurality of different transactions matched to the eventidentifier.
 16. The method of claim 1, wherein one of the componentingredient items associated with one product of the transaction ismatched to a plurality of different content dispense events of aplurality of different event identifiers.
 17. The method of claim 1,wherein based at least in part on the amount of content dispensed fromthe container matched with the at least one of the component ingredientitems associated with the transaction, calculate a ratio of amount ofsold vs. amount dispensed.
 18. The method of claim 1, furthercomprising, identifying one or more of the following: an unmatchedcontent dispense event of the container that does not correspond to anyreceived transaction data; an unmatched transaction data that does notmatch any content dispense event; an off-hour content dispense eventthat took place after specified business hours; an over-pour contentdispense event associated with a quantity that is greater than aspecified quantity of a corresponding transaction; an under-pour contentdispense event associated with a quantity that is less than a specifiedquantity of a corresponding transaction; or an average of times betweentransaction timestamps and content dispense timestamps of a plurality ofcorrelated transactions matched to corresponding content dispenseevents.
 19. A system, comprising: a processor, configured to: receive anevent identifier that identifies an amount of content dispensed from acontainer detected using a sensor device that includes a transmitterconfigured to transmit an interrogation signal and a receiver configuredto receive the interrogation signal that has been reflected within thecontainer; receive a transaction identifier of a transaction associatedwith quantities of different component ingredient items; andautomatically correlate the amount of content dispensed from thecontainer with the transaction at least in part by matching the amountof content dispensed from the container with at least one of thecomponent ingredient items associated with the transaction; and a memorycoupled to the processor and configured to provide the processor withinstructions.
 20. A computer program product, the computer programproduct being embodied in a non-transitory computer readable storagemedium and comprising computer instructions for: receiving an eventidentifier that identifies an amount of content dispensed from acontainer detected using a sensor device that includes a transmitterconfigured to transmit an interrogation signal and a receiver configuredto receive the interrogation signal that has been reflected within thecontainer; receiving a transaction identifier of a transactionassociated with quantities of different component ingredient items; andautomatically correlating the amount of content dispensed from thecontainer with the transaction at least in part by matching the amountof content dispensed from the container with at least one of thecomponent ingredient items associated with the transaction.